0

影を追加する UIImageView を持つ customCell を持つ UICollectionView があります。ただし、セルが表示されているコレクション ビューの「外側」にあり、(UICollection) ビューに戻る前に、影は描画されません。

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

static NSString *cellIdentifier = @"genreCell";

GenreViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];

cell.genreImageView.layer.shadowRadius = 1.5;
cell.genreImageView.layer.shadowOffset = CGSizeMake(-1, -1);
cell.genreImageView.layer.shadowOpacity = 0.5;
cell.genreImageView.layer.shadowColor = [UIColor blackColor].CGColor;

cell.genreImageView.layer.shadowPath = [UIBezierPath bezierPathWithRect:cell.genreImageView.bounds].CGPath;

return cell;

}
4

2 に答える 2

3

セルの境界は、cellForItemAtIndexPathメソッドが最初に呼び出されたときに設定されません。したがって、shadowPathは正しく計算されません。セルの境界が変更されるたびに、必ず shadowPath を更新してください。layoutSubviewsのメソッドをGenreViewCell使用できます。

于 2013-05-14T20:59:54.707 に答える