【发布时间】:2014-09-09 18:54:00
【问题描述】:
我有一个包含多种单元格样式和大小的集合视图,我想使用这个辅助函数来圆角单元格的角:
void roundCornersOfAView(UIView *view, CGFloat radius, BOOL shadow){
CALayer* layer = [view layer];
[layer setCornerRadius:radius];
[layer setBorderColor:[UIColor blackColor].CGColor];
[layer setMasksToBounds:YES];
// CALayer* mask = [CALayer layer];
// [mask setFrame:CGRectMake(layer.frame.origin.x, layer.frame.origin.y, layer.frame.size.width, layer.frame.size.height)];
// [mask setCornerRadius:radius];
// [layer setMask:mask];
if (shadow) {
[layer setBorderWidth:0.5f];
//[layer setMasksToBounds:NO];
[layer setShadowColor:[UIColor blackColor].CGColor];
[layer setShadowOpacity:1.0];
[layer setShadowRadius:1.0];
[layer setShadowOffset:CGSizeMake(0.0, 0.0)];
}
[layer setMasksToBounds:YES];
}
在我的单元格中使用它作为索引路径的行:
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:... forIndexPath:indexPath];
roundCornersOfAView([cell contentView], 30, YES);
问题是单元格上的图像没有被剪裁在圆角中,标签或任何其他子视图都没有,它只剪裁背景颜色......像 instagram 一样圆角和剪裁其内容的最佳方法是什么应用?
【问题讨论】:
-
尝试设置clipToBounds = YES;
-
已经尝试过...似乎剪辑到边界仍然是边界属性的一部分,它是一个平方 CGrect...因为这只是编辑图层,所以 clipToBounds 不起作用
-
尝试将单元格颜色设置为Clear color,可能你看到的是单元格而不是contentView。让我知道进展如何
-
还是不行...
-
您是否尝试过传递单元格而不是 [cell contentView]?
标签: ios uiview uicollectionview calayer