iOS 自訂colletionView(純程式碼)

來源:互聯網
上載者:User

iOS 自訂colletionView(純程式碼)

大家都說colletionView和UITabbleView 是兄弟,而且colletionView是在IOS 6之後出來的, colletionView和UITabbleView他倆確實是兄弟,但是使用的時你回遇到好多坑。
比如:
UICollectionView *colletionView = [[UICollectionView alloc]init];初始化一個colletionView,如果你這麼搞,你就掉到坑裡了。應為人家官方文檔是這樣給你的。
so!!!!你這樣搞就崩掉。你只能這樣。

 UICollectionViewFlowLayout *grid =[[UICollectionViewFlowLayout alloc] init]; grid.itemSize = CGSizeMake(80, 80); //設定colletionView的大小grid.sectionInset = UIEdgeInsetsMake(10.0, 10, 10, 10);UICollectionView *colletionView = [[UICollectionView alloc]initWithFrame:self.view.frame collectionViewLayout:grid];colletionView.delegate =self; colletionView.dataSource = self;[colletionView registerClass:[photoCell class] forCellWithReuseIdentifier:@"simpleCell"];//這個一定要加不加上的化你的Cell init 是不會調用的哦 !!

OK 正就成功執行個體化了一個colletionView它與它的兄弟一樣需要設定代理,設定資料來源。在執行個體化的時候已經設定好了。
現在去實現他的代理並且自訂一個colletionViewCell
自訂Cell 要去自訂一個Cell類繼承UICollectionViewCell
.h

#import @interface Cell : UICollectionViewCell@property (nonatomic,strong)UIImageView *image;@end

.m

@implementation Cell-(id)initWithFrame:(CGRect)frame{        self = [super initWithFrame:frame];        if (self)        {            // change to our custom selected background view            self.image = [[UIImageView alloc]init];            [self.image setFrame:CGRectMake(self.contentView.frame.size.width/2+20+5, -5, 20, 20)];            [self.image setBackgroundColor:[UIColor redColor]];            self.image.layer.cornerRadius=self.image.frame.size.width/2; // 將圖層的邊框設定為圓角            self.image.layer.masksToBounds=YES; // 隱藏邊界            [self addSubview:self.image];        }        return self;}@end
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{    return 1;}-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{    return 10;}-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{  static NSString *cellIdentifier = @"simpleCell"; Cell *cell = (Cell *)[collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];  if (cell ==nil) {   cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];    }    return cell;}- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{    //--單機事件}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.