如何在表格视图单元格中的视图内设置视图的角半径?
Posted
技术标签:
【中文标题】如何在表格视图单元格中的视图内设置视图的角半径?【英文标题】:How to set corner radius of a view inside a view in tableview cell? 【发布时间】:2018-03-06 09:25:38 【问题描述】:我是 ios 新手,遇到了这个问题。我正在创建一个这样的自定义单元格
我在主视图内拍摄了一个矩形视图(左侧)。这是设置两个视图的圆角半径的代码。
_viewBG.layer.cornerRadius = 10.0;
_viewBG.layer.shadowOpacity = 0.5;
_viewBG.layer.shadowOffset = CGSizeMake(-1, 1);
_viewBG.layer.borderWidth = 0.5;
_viewBG.layer.borderColor = [[UIColor lightGrayColor] CGColor];
UIBezierPath *maskPath = [UIBezierPath
bezierPathWithRoundedRect:self.viewLeft.bounds
byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerBottomLeft)
cornerRadii:CGSizeMake(10, 10)
];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;
self.viewLeft.layer.mask = maskLayer;
但是我得到了这个输出..
所以我想根据主视图设置红色 uiview 的圆角半径......任何想法都将不胜感激。你能帮忙吗?
【问题讨论】:
【参考方案1】:步骤:
制作一个包含左右视图的主包装视图。将其背景颜色设置为透明色。
在主包装视图内添加另一个视图,并根据需要为其指定角半径并掩码绑定为 true
在步骤 2 中创建的此子视图中,将您的红色和另一个具有属性 clip 的视图添加到边界 true
现在在主 wrapperview 中将阴影和蒙版设置为 false【讨论】:
好的,我会尽力让你知道的。谢谢 优雅的解决方案.. 谢谢 Ashwin 先生! 总是很高兴..乐于助人:)【参考方案2】:只需设置单元格的clipToBounds = true
。
在您的情况下,它将是 _viewBG.clipToBounds = true
要使阴影可见,请使用_viewBG.layer.maskToBounds = false
【讨论】:
但是使用您的解决方案,主视图周围的阴影会丢失...您猜猜为什么? 如果它解决了你的问题,那么接受这个答案,这样它对其他人也有帮助......:) 没有解决。当我设置 _viewBG.layer.maskToBounds = false 时,它会出现阴影,但带有我的旧输出。 :(以上是关于如何在表格视图单元格中的视图内设置视图的角半径?的主要内容,如果未能解决你的问题,请参考以下文章