【发布时间】:2017-10-17 09:21:28
【问题描述】:
在willWillLayoutSubviews() 内部,我调用UIButton's 方法setTileTheme(),这是我创建的。结果如下所示 - 重复的UILabel 出现在另一个下方。我已经尝试从viewDidLoad() 等处调用我的方法,但没有帮助。
有人知道我为什么会遇到这个问题吗?
func setTileTheme(image: UIImage, title: String) {
self.translatesAutoresizingMaskIntoConstraints = false
tintColor = .green
backgroundColor = .white
setBorder(width: 1.5, color: .lightGray)
roundCorners(radius: 5)
self.layer.masksToBounds = true
let width = self.frame.size.width
let height = self.frame.size.height
let offset: CGFloat = width/4.5
let titleLabel = UILabel(frame: CGRect(x: 0.0, y: 0.0, width: width, height: 30))
titleLabel.center = CGPoint(x: width/2, y: height-offset)
titleLabel.text = title
titleLabel.font = titleLabel.font.withSize(15)
titleLabel.textAlignment = .center
titleLabel.textColor = .darkGray
self.insertSubview(titleLabel, at: 0)
imageEdgeInsets = UIEdgeInsets(top: height/8, left: width/4, bottom: height*3/8, right: width/4)
setImage(image, for: .disabled)
setImage(image.withRenderingMode(.alwaysTemplate), for: .normal)
}
【问题讨论】:
-
调用了多少次
setTileTheme()?多次。根据底部标签的颜色较深,我会说同一位置有更多。总共至少调用了 3 次。所以使用属性来代替titleLabel。
标签: ios swift uibutton uilabel xcode9