2012-10-29 20 views
30

Bir iPad Uygulaması oluştururken, bir UICollectionViewCell etrafında nasıl bir kenarlık çizebilirsiniz?UICollectionViewCell Sınır/Gölge

Daha fazla bilgi: UICollectionViewCell'i genişleten bir sınıf ProductCell uyguladım. Şimdi, bazı süslü detaylar vermek istiyorum, ör. kenarlık, gölge vb. Ancak, this here gibi bir şeyi kullanmaya çalışırken Xcode, alıcı tipinin 'CALayer' iletisinin ileri bir bildirim olduğunu söyler.

#import <QuartzCore/QuartzCore.h> 

cevap

71

Sadece biraz daha uygulanması için:

#import <QuartzCore/QuartzCore.h> 

yılında your.m

emin olun

7

Sen çerçeveyi QuartzCore kapsam içine almak ve sınıfa başlığını almak gerekir sınıfınız

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath; 
Bu, hücrenin kurulduğu yer olan 10

.

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    MyCollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"pressieCell" forIndexPath:indexPath]; 
    //other cell setup here 

    cell.layer.borderWidth=1.0f; 
    cell.layer.borderColor=[UIColor blueColor].CGColor; 

    return cell; 
} 
11

Swift

varsayarsak 3

Swift için güncellenmiş altında

Ardından size Collection View set up with the required methods var (bir kez alınır kuvars, sadece mevcut) cell.layer.background

Bkz değiştirebilir Sınırı eklemek için sadece birkaç satır kod yazabilirsiniz.

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! MyCollectionViewCell 
    cell.myLabel.text = self.items[indexPath.item] 
    cell.backgroundColor = UIColor.cyan 

    // add a border 
    cell.layer.borderColor = UIColor.black.cgColor 
    cell.layer.borderWidth = 1 
    cell.layer.cornerRadius = 8 // optional 

    return cell 
} 

Notlar

  • O zaten UIKit ithal varsa Swift içinde QuartzCore ithal etmek gerekli değildir.
  • Ayrıca gölge eklemek isterseniz, bkz. this answer.
İlgili konular