【问题标题】:Rounded corners in a UITableView (iOS7)UITableView (iOS7) 中的圆角
【发布时间】:2014-03-29 17:51:00
【问题描述】:

在 iOS7 中,如何在 UITableView 中绘制单元格的圆角?看一个例子:

【问题讨论】:

标签: objective-c uitableview ios7 rounded-corners


【解决方案1】:

您的UITableview 包含UIView,因此只需使用以下代码行将其设为圆角即可。 还要在您的 tableview 方法中编写下面的代码行

//如果iOS版本

对于 Objective-C:

cell.contentView.layer.cornerRadius = 5;
cell.contentView.layer.masksToBounds = YES;

对于斯威夫特:

cell.contentView.layer.cornerRadius = 5
cell.contentView.layer.masksToBounds = true

//如果iOS版本>= 10

对于 Objective-C:

cell.layer.cornerRadius = 5;
cell.layer.masksToBounds = YES;

对于斯威夫特:

cell.layer.cornerRadius = 5
cell.layer.masksToBounds = true

注意:无需显式导入QuartzCore framework

【讨论】:

  • 你的意思是 cell.contentView 而不是 view?
  • 不知道一年前使用“YES”是否真的有效,但现在至少它是“true”而不是“YES”,不过,这对我来说非常有效。
  • 也许是因为我使用的是 swift,我不知道,我只知道输入 YES 对我不起作用,必须使用 true 代替。在您发布该文档页面之前,我也从未听说过任何使用 YES 或 NO 表示 BOOL 的代码,等等。认为我只是错过了 obj-c 标记,即使当我找到这个页面时,我正在谷歌中快速输入。
  • 对于objective-c 使用YES,对于swift 使用true
  • @AbhishekThapliyal 是对的,它不适用于 iOS 10,但此代码有效。 cell.layer.cornerRadius = 50; cell.layer.masksToBounds = YES;
【解决方案2】:

我对 UITableViewCell 进行了子类化,并且不得不省略 contentView 以使其正常工作。

cell.layer.cornerRadius = 10 cell.layer.maskToBounds = true

【讨论】:

  • 我不知道为什么但同样的事情为什么 cell.contentivew.layer.cornerRadius = 5;不工作?
  • 你继承了 UITableViewCell 吗?我不再为 iOS 开发,但我认为这就是我最初需要这种解决方法的原因。
  • @AbhishekThapliyal cell.contentview.layer.cornerRadius 如果单元格有不明确的cell.backgroundColor 或不明确的cell.backgroundView 是不够的。这就是为什么隐藏用户名解决方案可能比 Hussain Shabbir 或 Fahim Parkar 更好的解决方案。
【解决方案3】:

在下面使用...

[cell.contentView.layer setCornerRadius:7.0f];
[cell.contentView.layer setMasksToBounds:YES];

【讨论】:

    【解决方案4】:

    尝试表视图委托

    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        cell.layer.cornerRadius = 10;
        cell.layer.masksToBounds = YES;
    }
    

    注意/推荐:最好使用 Cell XIB/NIB 文件,添加 UIView 并保持 top、bottom、left &通过约束来右角边距,保持单元格背景透明和圆形UIView角。我的解决方案很适合这种情况。但始终追求最佳实践。

    【讨论】:

    • 你的解决方案比前面所有的都好!
    • 有史以来最好的解决方案!
    猜你喜欢
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多