場(chǎng)景
UICollectionView是繼UITableView后的高級(jí)視圖,可用來(lái)搭建復(fù)雜的UI.很多復(fù)雜的UI用UITableView來(lái)布局就很麻煩,比如流式布局的界面,而且還涉及到Cell的復(fù)用,但是用UICollectionView就很簡(jiǎn)單.只是我覺(jué)得UICollectionView較之前者也會(huì)有一些小的不便,比如UITableView可以用第三方框架,如:UITableView-FDTemplateLayoutCell很方便的就能夠動(dòng)態(tài)計(jì)算行高,但UICollectionView則較麻煩,一般只能用代理方法- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewFlowLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath設(shè)置Cell的大小.
在我的一個(gè)需求中,用UICollectionView布局就比較方便,但是涉及到需要在一個(gè)UICollectionView中一些UICollectionViewCell縱向排列,一些橫向排列.
一般用UICollectionViewFlowLayout可以設(shè)置排列方式,但是如果僅在一個(gè)UICollectionView中要顯示差異化的滾動(dòng)方向,就不能很好的實(shí)現(xiàn)了.
解決方案
最終,我選擇了在一個(gè)UICollectionViewCell中嵌套UICollectionView的方式可以實(shí)現(xiàn)上述的需求,但是好在我的UI中僅有一個(gè)UICollectionViewCell的item滾動(dòng)方式會(huì)與其他的不同.如果cell較多,那么也可能還需要處理復(fù)用帶來(lái)的性能影響問(wèn)題。
PS:關(guān)于這個(gè)問(wèn)題,我也想了很長(zhǎng)時(shí)間如何更有效的處理,但是由于是在一個(gè)
UICollectionView視圖中布局,所以暫沒(méi)有找到解決方案,用上述的方式暫解決了問(wèn)題。
文章發(fā)布
本文同步發(fā)布至:
簡(jiǎn)書(shū)
LSRain