IOS相簿功能

2021-06-21 20:42:16 字數 2768 閱讀 1900

[html]view plain

copy

_scrollview

= [[uiscrollview alloc]initwithframe:cgrectmake(0,0, 320, 480)];  

_scrollview.delegate

=self

;  _scrollview.scrollenabled

=yes

;  _scrollview.decelerationrate

= uiscrollviewdecelerationratenormal

;  _scrollview.pagingenabled

=yes

;  _scrollview.showsverticalscrollindicator=no

;  _scrollview.showshorizontalscrollindicator=no

;  _scrollview.backgroundcolor

= self

.view.backgroundcolor;  

[_scrollview setcontentsize:cgsizemake(320*[_itemset count], 316)];  

(大家注意到有乙個_itemset,這是乙個包含了資料的集合,可以是網路上的的位址,也可以是包含了封裝位址的物件的例項,總值不能是uiimage的例項,不然就是失去了封裝的意義了。)

[html]view plain

copy

[self.view addsubview:_scrollview];  

[self configscrowviewwithindex:self.itemindex withforward:no withorigin:yes];  

pageindex

= itemindex

;  

將scrollview新增為當前試圖的子試圖之後,我們馬上 呼叫

[self

configscrowviewwithindex

:self

.itemindex

withforward:no

withorigin

:yes

]; 這是實現整個業務邏輯的關鍵方法,就是說去配置當前的索引應該執行的操作,第乙個引數是當前的索引,比如說0就代表我是從_itemset的第乙個元素對映的開始顯示;第二個引數是判斷當前是向前還是向後翻動相簿;第三個引數是表示當前是不是第一次顯示相簿。

將itemset的索引賦給頁數,這兩個成員一直是相等的,這樣只是為了區別的看待這兩個序數。

[html]view plain

copy

- (void)configscrowviewwithindex:(int)index withforward:(bool)isforward withorigin:(bool)isorigin  

//當偏移量是0的話載入當前的索引的檢視和前後的檢視(如果存在的話)  

if (isorigin)   

wpcellimageview *nextview

= [self configitemwithindex:index+1];  

if (nextview)   

wpcellimageview *lastview

= [self configitemwithindex:index-1];  

if(lastview)  

}  else   

if ([_scrollview viewwithtag:nextviewtag])   

}  }  //如果向後滑動的話,載入上一張試圖的前一張試圖,同時移除下一張試圖的後一張試圖  

else   

if ([_scrollview viewwithtag:lastviewtag])   

}  }  

}  }  

這裡面還呼叫了乙個方法:

- (wpcellimageview*)configitemwithindex:(int)index

[html]view plain

copy

if (index

<

0|| index

>

[_itemset count]-1)   

wpwaterflowitem *dic

= [_itemset objectatindex:index];  

wpcellimageview *firstview

= [[wpcellimageview alloc]initwithframe:cgrectmake(_scrollview.frame.size.width*index, 0, _scrollview.frame.size.width, _scrollview.frame.size.height) ];  

[firstview seturl:dic.picurl];  

return [firstview autorelease];  

[html]view plain

copy

#pragma mark uiscrollview delegate   

- (void)scrollviewdidscroll:(uiscrollview *)scrollview  

else if(pageindex<

beforeindex

)   

}  

呵呵,很簡單吧,滑動超過半頁的時候就去載入和管理記憶體。

iOS 相簿 相機

由於部落格遷移至www.coderyi.com,文章請看 該框架下有幾個類,alassetslibrary,alassetsgroup,alasset,alassetsfilter,alassetrepresentation。alassetslibrary類可以實現檢視相簿列表,增加相簿,儲存到相簿...

ionic 相簿功能的實現

功能需求 輪播圖顯示已新增的所有相片 實現拖動排序功能 實現長按彈出刪除按鈕 實現輪播圖與縮圖同步 效果圖展示 使用的外掛程式 ngdraggable 如下 view title 編輯 align title center class bar dark class buttons class but...

iOS 呼叫系統相簿相機

actionsheet的方法在8.3之後就被取代了,下面介紹目前比較新的方法 1 info.plist檔案寫訪問授權 nsphotolibraryusagedescription 請求訪問相簿 nscamerausagedescription 請求訪問相機 2 這一步就不解釋了,當用到uiimage...