UIlabel layer.cornerRadius在iOS 7.1中不起作用

Mik*_*e V 181 cornerradius uiview uilabel ios ios7

我目前正在寻找具有属性的UILabel addMessageLabel.layer.cornerRadius = 5.0f;在安装了iOS 7.0的设备上,它有圆角.在安装了iOS 7.1的设备上,它没有圆角.

这只是iOS 7.1的一个错误吗?

Rah*_*diq 474

将该属性设置clipsToBounds为true

addMessageLabel.clipsToBounds = true
Run Code Online (Sandbox Code Playgroud)

  • 不,不奇怪......只是"进步"...... <humf>,似乎UILabel的clipsToBounds现在像其他大多数UIViews一样默认为FALSE.Apple可能会尝试让东西更加一致.我也有同样的问题. (10认同)
  • 不知道为什么你不必在iOS 7上这样做但是必须使用iOS 7.1,但它确实有效!谢谢 (3认同)
  • 感谢Stack Overflow的开发人员. (3认同)
  • @ChristopherKing我找不到这方面的文档,但这也适用于我的场景,我猜:) (2认同)

All*_*len 64

我认为设置圆角半径的最佳方法是:

在此输入图像描述

并确保选中"剪辑子视图":

在此输入图像描述

检查"剪辑子视图"等于代码addMessageLabel.clipsToBounds = YES;.


Tap*_*Pal 22

添加以下两行并检查它.

[[addMessageLabel layer] setCornerRadius:5.0f];
[[addMessageLabel layer] setMasksToBounds:YES];
Run Code Online (Sandbox Code Playgroud)

要么

[addMessageLabel setClipsToBounds:YES];
Run Code Online (Sandbox Code Playgroud)


Hon*_*ney 5

我的问题有点不同。

当我做的时候 btn.clipsToBounds = true

我没有打算这样做:

btn.layer.cornerRadius = 20
Run Code Online (Sandbox Code Playgroud)

因为我的屏幕尺寸不同。相反,我遵循了这个答案并做了:

override func layoutSubviews() {
    seeMoreButton.layer.cornerRadius = seeMoreButton.bounds.size.height / 2
}
Run Code Online (Sandbox Code Playgroud)

这没用,因为我忘了加super.layoutSubviews()。正确的代码是:

override func layoutSubviews() {
    super.layoutSubviews()
    seeMoreButton.layer.cornerRadius = seeMoreButton.bounds.size.height / 2
}
Run Code Online (Sandbox Code Playgroud)