91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS中UICollectionView中Decoration View的使用

發布時間:2020-08-03 16:27:14 來源:網絡 閱讀:10013 作者:zfajqp 欄目:移動開發

Decoration View是UICollectionView的裝飾視圖。蘋果官方給的案例都沒涉及到這個視圖的使用。沒有具體的細節。我今天用UICollectionView做了一個簡易的書架。主要是Decoration View的使用方法。

效果如下:

IOS中UICollectionView中Decoration View的使用

基本的UICollectionView使用方法請自己查詢。

#import "CVViewController.h"

#import "CVCell.h"

#import "CVLayout.h"

@interfaceCVViewController ()


@end


@implementation CVViewController


- (void)viewDidLoad

{

   [superviewDidLoad];


   [self.coll registerClass:[CVCell class] forCellWithReuseIdentifier:@"cell"];

   CVLayout *layout=[[CVLayout alloc] init];

   [self.coll setCollectionViewLayout:layout];


}


- (void)didReceiveMemoryWarning

{

   [superdidReceiveMemoryWarning];


}


-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{


 return3;

}

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{


  return3;

}

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{


UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell"forIndexPath:indexPath];

return cell;


}

@end

其中CVCell是我自定義的一個

UICollectionViewCell

其中CVLayout是我自定義的一個

UICollectionViewLayout

接下來主要看一下自定義的layout

#import "CVLayout.h"

#import "CVDEView.h"

@implementation CVLayout


-(void)prepareLayout{

   [super prepareLayout];

   [self  registerClass:[CVDEView  class] forDecorationViewOfKind:@"CDV"];//注冊Decoration View


}

-(CGSize)collectionViewContentSize{


  return  self.collectionView.frame.size;

}


- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)path

{



 UICollectionViewLayoutAttributes* attributes =     [UICollectionViewLayoutAttributeslayoutAttributesForCellWithIndexPath:path];

   attributes.size = CGSizeMake(215/3.0, 303/3.0);


   attributes.center=CGPointMake(80*(path.item+1), 62.5+125*path.section);

  return attributes;

}

//Decoration View的布局。

- (UICollectionViewLayoutAttributes *)layoutAttributesForDecorationViewOfKind:(NSString*)decorationViewKind atIndexPath:(NSIndexPath *)indexPath{


UICollectionViewLayoutAttributes* att = [UICollectionViewLayoutAttributeslayoutAttributesForDecorationViewOfKind:decorationViewKind withIndexPath:indexPath];


   att.frame=CGRectMake(0, (125*indexPath.section)/2.0, 320, 125);

   att.zIndex=-1;


return att;


}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect{


NSMutableArray* attributes = [NSMutableArrayarray];

//把Decoration View的布局加入可見區域布局。

for (int y=0; y<3; y++) {

NSIndexPath* indexPath = [NSIndexPathindexPathForItem:3inSection:y];

       [attributes addObject:[selflayoutAttributesForDecorationViewOfKind:@"CDV"atIndexPath:indexPath]];

   }


for (NSInteger i=0 ; i < 3; i++) {

for (NSInteger t=0; t<3; t++) {

NSIndexPath* indexPath = [NSIndexPathindexPathForItem:t inSection:i];

           [attributes addObject:[selflayoutAttributesForItemAtIndexPath:indexPath]];

       }


   }


return attributes;

}


下面是最后的Decoration View的設計。

首先要繼承

UICollectionReusableView

然后

@implementation CVDEView


- (id)initWithFrame:(CGRect)frame

{

self = [superinitWithFrame:frame];

if (self) {

UIImageView *p_w_picpathView=[[UIImageViewalloc] initWithFrame:frame];

       p_w_picpathView.p_w_picpath=[UIImagep_w_picpathNamed:@"BookShelfCell.png"];


       [selfaddSubview:p_w_picpathView];

   }

returnself;

}

OK。就可以看到上面圖上的效果了。



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台江县| 东丰县| 墨脱县| 莫力| 宿州市| 普格县| 剑川县| 丰都县| 北碚区| 德兴市| 榆中县| 巩留县| 天全县| 辉南县| 石河子市| 宿迁市| 呈贡县| 容城县| 枝江市| 德令哈市| 抚州市| 昭平县| 广南县| 连州市| 雅江县| 普格县| 玉山县| 缙云县| 巴塘县| 平武县| 财经| 柞水县| 区。| 元氏县| 黔东| 行唐县| 武宁县| 宁都县| 海盐县| 泾阳县| 北流市|