【发布时间】:2017-01-07 21:06:09
【问题描述】:
我正确设置了我的自动布局,它可以正常工作。但是,当我在横向使用自定义 UITextField 类时,边框不会更改。我使用以下代码:
required init?(coder aDecoder: (NSCoder!)) {
super.init(coder: aDecoder)
self.delegate=self;
border.borderColor = UIColor(netHex: 0xc6c6c6).cgColor
border.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width, height: self.frame.size.height)
border.borderWidth = width
self.layer.addSublayer(border)
self.layer.masksToBounds = true
//self.font = UIFont(name: "System", size: CGFloat(23))
}
override func draw(_ rect: CGRect) {
border.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width, height: self.frame.size.height)
}
override func awakeFromNib() {
super.awakeFromNib()
border.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width, height: self.frame.size.height)
}
当方向改变时我应该如何改变我的自定义边框大小。
【问题讨论】:
-
这段代码和自动布局有什么关系?
-
另外,有没有竖屏模式和横屏模式的图片看看有什么区别?
-
对不起。问题出在边框而不是自动布局。当我改变方向时,我的自定义边框宽度不会被修改。
-
从控制器(viewWIllLayoutSubviews 或 viewWillTransitionTo(size:))或视图(layoutSubviews)检查您的方向。根据视图边界,编写您需要的代码。
-
我几乎给了你你需要的东西。了解视图生命周期以及方向更改时触发的内容 - 这就是我给您的功能/方法,检查视图边界(它是高度和宽度)以确定方向。在此基础上,更改边框。 (当然,对于很多事情——也许不是这个——你可以使用自动布局,以及大小和特征类)。
标签: ios swift autolayout uitextfield