为什么设置ClipsToBounds:NOT禁用setCornerRadius:用于UItableview?

时间:2014-04-20 19:27:26

标签: ios uitableview calayer

我正在创建UIItableview。对于第一个单元格,我想要一个带有按钮的用户Image,以允许他更改图像。 (不那么复杂)。 不知怎的,我有一个奇怪的问题:当我设置setMasksToBounds:NO时,[self.userTable.layer setCornerRadius:20.0];就会被禁用。 我附加了一个带输出示例的代码:

//Initiate UserTable
//[self.userTable setClipsToBounds:NO];//from the documentation this line is set by default
[self.userTable.layer setCornerRadius:20.0];
[self.view addSubview:self.userTable];

稍后在cellForRowAtIndexPath:我添加:

[myCellView.contentView addSubview:photo]; //My photo is UImageview

enter image description here

如果我取消注释行[self.userTable setClipsToBounds:NO],我会得到: enter image description here

但我的角落不再圆了...... 我读了以下问题 thisthis仍然无法弄清楚这一点? 有人有这个问题,可以提供一个不会强迫我更改所有代码的修复程序吗?以及这两个选项如何相互关联? 非常感谢。

1 个答案:

答案 0 :(得分:2)

调用setCornerRadius会将一个遮罩应用于CALayer,然后用于遮盖边界并创建圆角效果。 通过调用setMasksToBounds:NO,您将禁用用于围绕角落的机制。

简而言之,你无法双管齐下。

请考虑使tableview中的行更高,或使用自定义视图而不是标准UITableViewCell