ios - 从 NSLayoutConstraint 获取高度值

标签 ios swift ios-autolayout

在我的项目中,我使用的是 AutoLayOut,有一个 UIView,它是 subview 主视图,我将其宽度(使用约束)设置为等于 2 :3 superView 的宽度,其高度等于其 View 。我需要 View 是圆形的,所以我将它的 cornerRadius 设置为 heightOfView/2。 View 的高度和宽度的纵横比为 1:1。我已经将该约束的导出创建为

 @IBOutlet weak var circleHeight: NSLayoutConstraint

现在我想访问它的高度或宽度,但我不是 gwtting 实际值,

circleHeight.firstItem.frame.width

我正在获取我从 Storyboard 中存储的值,有一些我遗漏但无法弄清楚的东西

enter image description here 选定的 View 应该是圆形的。但是当我打印它的 constain 值时,它给出的高度和宽度仅为 214

最佳答案

您可以为这个 UIView 创建 IBOutlet,它应该是圆形的。 然后在 viewDidLayoutSubviews() 方法中,您可以读取其高度并将其设置为圆形:

override func viewDidLayoutSubviews() {
    let viewHeight = CGRectGetHeight(yourView.frame)
    yourView.layer.cornerRadius = viewHeight / 2
    yourView.layer.masksToBounds = true
}

关于ios - 从 NSLayoutConstraint 获取高度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38185930/

相关文章:

ios - UICollectionView 单元可重用性问题 - swift

iOS Swift3 使用键盘移动 Textfield 和 ContainerView

ios - 如何根据最近添加的 subview 更改 View 高度?

ios - 关闭 : "Unable to simultaneously satisfy constraints"

ios - 是否可以更改具有不同类的对象的类类型?

ios - Restkit 无法读取有效的 json?

ios - 类型 '[Businessdata]' 的值没有成员 'objectAtIndex'

ios - 如何使用 swift 在 Xcode 中制作自定义按钮?

ios - 在 UITableView 中滚动后 UIButton 颜色发生变化

ios - 在 iOS 上以编程方式向按钮添加操作