Swift - 以编程方式制作的按钮不是完美的圆形吗?边缘平坦?

标签 swift

我正在 Swift 中工作,我已经以编程方式创建了一个按钮。当我以编程方式制作东西时,我使用比率,因为我在自动布局方面遇到了很多问题。我在 5 秒上运行它,所以比率是正确的。我的代码:

menuBtn1.frame = CGRectMake(0, 0, screenSize.width * (50/330), screenSize.height * (50/568))
        menuBtn1.backgroundColor = colorWithHexString(chosenColor)
        menuBtn1.layer.cornerRadius = menuBtn1.bounds.width*0.5
        menuBtn1.clipsToBounds = true
        menuBtn1.center = CGPointMake(screenSize.width * 0.5, screenSize.height * (0.88))
        menuBtn1.addTarget(self, action: ":", forControlEvents: UIControlEvents.TouchUpInside)
        self.view.addSubview(menuBtn1)

虽然比例可能是问题,但我什至在将高度和宽度设置为 50 和 50 时也遇到了这个问题。我的圆并不完美 - 它有平坦的边缘: enter image description here

这不是一个大问题,但看起来不太好 - 我怎样才能画出一个完美的圆?为什么会有边缘?

enter image description here

最佳答案

圆需要其宽度等于高度:

CGRectMake(0, 0, screenSize.width * (50/330), screenSize.height * (50/568))

肯定会不满足这个前提条件。

您可能只想:

let size = screenSize.width * (50 / 330)
menuBtn1.frame = CGRectMake(0, 0, size, size)

关于Swift - 以编程方式制作的按钮不是完美的圆形吗?边缘平坦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38225953/

相关文章:

ios - 展开 UITableViewCell UIImage

ios - 从 HealthKit 读取锻炼数据的最佳方法

ios - 从 JSON 响应创建字符串数组 Alamofire

swift - 将应用程序下载与设备关联? ( swift )

ios - 搜索栏在 IOS 应用程序 swift 3 中不起作用

swift - Swift 3.1 中没有空或通配符的详尽 catch block

Swift 获取 GMT 中两个日期之间的差异

ios - 如何通过 Swift Package Manager 分发 Swift 库的 iOS 演示应用程序?

ios - 如何在 ios swift2 中使用解析获取用于 google+ 登录的 session token

xcode - 在 spritekit 场景编辑器中使用自定义 SKNodes