我正在以编程方式放置我的UI元素,所以我经常需要知道其他视图框架当前位置以基于这些位置放置另一个UI元素,我发现自己重复此代码的次数比我想要的多:
var mybutton = UIButton(frame: CGRectMake(10,10,20,20))
var myOtherButton = UIButton(frame: CGRectMake(mybutton.frame.origin.x + mybutton.frame.width, mybutton.frame.origin.y + mybutton.frame.height, 20, 20))
基本上我添加origin
和frame.width
,我会很感激有关扩展的一些线索,可以让这个值输入更少的代码。
答案 0 :(得分:2)
试试这样:
extension UIButton {
var subFrame: CGRect {
return CGRectMake(frame.origin.x + frame.width, frame.origin.y + frame.height, frame.width, frame.height)
}
}
let mybutton = UIButton(frame: CGRectMake(10,10,20,20))
print(mybutton.subFrame) // {x 30 y 30 w 20 h 20}
let myOtherButton = UIButton(frame: mybutton.subFrame)