gpt4 book ai didi

swift - 将 50 的 layer.cornerRadius 应用于按钮时出现奇怪的结果

转载 作者:行者123 更新时间:2023-11-28 11:09:42 25 4
gpt4 key购买 nike

我的目标是创建一个带有全圆角的按钮(每边各半个圆)。它应该看起来像这样:

enter image description here

在用户定义的运行时属性中,我将 layer.cornerRadius 设置为 KeyPath,并将 50 设置为 Value(也尝试过设置为 49)。此外,我已将“剪辑 subview ”选项设置为是(如在这个答案中:UIlabel layer.cornerRadius not working in iOS 7.1)然而,编译结果在我的 iPhone 5c (iOS 9.2.1) 上看起来像这样:

enter image description here

(图片是在 photoshop 中制作的,但它看起来就是这样)

角是圆的,但显然缺少 anchor 。关于如何获得预期结果的任何建议?

最佳答案

cornerRadius 值不会根据按钮高度自动更新,因此,当从 Storyboard/xib 指定它时,您必须确保该值恰好是按钮高度的一半。

通常这是通过将按钮高度设置为常数(使用高度约束)并将 cornerRadius 设置为该常数的一半来实现的(例如,对于您想要的高度 100 cornerRadius,值为 50)。

如果你想要一个自动更新的解决方案,最简单的解决方案是继承 UIButton 并覆盖 layoutSubviews:

override func layoutSubviews() {
super.layoutSubviews()

self.layer.cornerRadius = self.frame.size.height / 2.0
}

然后在 xib/storyboard 中,您可以将按钮的类更改为您的自定义类。

关于swift - 将 50 的 layer.cornerRadius 应用于按钮时出现奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35898599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com