iOS 13 将圆形按钮更改为对角线
Posted
技术标签:
【中文标题】iOS 13 将圆形按钮更改为对角线【英文标题】:iOS 13 Changed circular buttons to diagonal 【发布时间】:2019-11-12 06:04:55 【问题描述】:我在视图控制器中有以下两个按钮,它们在 ios 12 和 XCode 11 中显示我需要的圆形按钮,但是当我使用 iOS 13 和 XCode 11 时,它们是对角线,如图所示。
self.saveBtn.frame.size = CGSize(width:70,height:70)
self.saveBtn.layer.cornerRadius = self.saveBtn.frame.size.height/2.0
self.saveBtn.layer.borderColor = UIColor.lightGray.cgColor
self.saveBtn.layer.borderWidth = 1.5
self.saveBtn.clipsToBounds = true
self.saveBtn.titleLabel?.font = UIFont(name:"HelveticaNeue", size:18)
self.saveBtn.titleLabel?.adjustsFontSizeToFitWidth = true
self.cancelBtn.frame.size = CGSize(width:70,height:70)
self.cancelBtn.layer.cornerRadius = self.cancelBtn.frame.size.height/2.0
self.cancelBtn.layer.borderColor = UIColor.lightGray.cgColor
self.cancelBtn.layer.borderWidth = 1.5
self.cancelBtn.clipsToBounds = true
self.cancelBtn.titleLabel?.font = UIFont(name:"HelveticaNeue", size:18)
self.cancelBtn.titleLabel?.adjustsFontSizeToFitWidth = true
如何将这些按钮转换回圆形?
【问题讨论】:
在父视图上添加按钮后,您是否对按钮使用了约束? @sheshnath 是的,我确实在添加到父视图后添加了约束,但是为什么它仍然在 iOS 12 中运行而不是在 iOS 13 上运行 我不确定,可能iOS 13中的一些UI渲染机制发生了变化,尝试在viewDidLayoutSubviews上添加这个,看看这个是否有效 @sheshnath,尝试添加什么? 出现此问题是因为您的按钮或子视图高度将更改,修复此问题并获得适当的高度。你也可以试试这个:self.saveBtn.layer.cornerRadius = self.saveBtn.frame.size.width/2.0 【参考方案1】:我不确定,但试试这个
class ViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
override func viewDidLayoutSubviews()
super.viewDidLayoutSubviews()
self.saveBtn.frame.size = CGSize(width:70,height:70)
self.saveBtn.layer.cornerRadius = self.saveBtn.frame.size.height/2.0
self.saveBtn.layer.borderColor = UIColor.lightGray.cgColor
self.saveBtn.layer.borderWidth = 1.5
self.saveBtn.clipsToBounds = true
self.saveBtn.titleLabel?.font = UIFont(name:"HelveticaNeue", size:18)
self.saveBtn.titleLabel?.adjustsFontSizeToFitWidth = true
self.cancelBtn.frame.size = CGSize(width:70,height:70)
self.cancelBtn.layer.cornerRadius = self.cancelBtn.frame.size.height/2.0
self.cancelBtn.layer.borderColor = UIColor.lightGray.cgColor
self.cancelBtn.layer.borderWidth = 1.5
self.cancelBtn.clipsToBounds = true
self.cancelBtn.titleLabel?.font = UIFont(name:"HelveticaNeue", size:18)
self.cancelBtn.titleLabel?.adjustsFontSizeToFitWidth = true
【讨论】:
所以按钮不是以编程方式制作的吗? ,尝试一次不以编程方式设置按钮框架我的意思是注释掉代码 - self.saveBtn.frame.size = CGSize(width:70,height:70) 好的,我自己试试再回复你 欣赏,请告诉我。以上是关于iOS 13 将圆形按钮更改为对角线的主要内容,如果未能解决你的问题,请参考以下文章