Ios 如何创建一个自定义UIView,它只有一个按钮,然后可以在整个应用程序中使用,将其放置在不同的位置?
我已经创建了一个圆形按钮,它是一个自定义UIView。下面是代码:Ios 如何创建一个自定义UIView,它只有一个按钮,然后可以在整个应用程序中使用,将其放置在不同的位置?,ios,swift,uiview,Ios,Swift,Uiview,我已经创建了一个圆形按钮,它是一个自定义UIView。下面是代码: class HelpTips: UIView { weak var hotSpot: UIButton! override init(frame: CGRect) { super.init(frame: frame) let strongHotSpot = UIButton() hotSpot = strongHotSpot self.addSubview(strongHotSpot)
class HelpTips: UIView {
weak var hotSpot: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
let strongHotSpot = UIButton()
hotSpot = strongHotSpot
self.addSubview(strongHotSpot)
hotSpotOne.translatesAutoresizingMaskIntoConstraints = false
hotSpotOne.backgroundColor = UIColor.TRLMHelpTipYellowColor()
hotSpotOne.layer.borderColor = UIColor.TRLMHelpTipStrokeColor().CGColor
hotSpotOne.layer.borderWidth = 1
let horizontalConstraint = NSLayoutConstraint(item: hotSpot, attribute: .Leading, relatedBy: .Equal, toItem: self, attribute: .Leading, multiplier: 1.0, constant: -1)
let verticalConstraint = NSLayoutConstraint(item: hotSpot, attribute: .Top, relatedBy: .Equal, toItem: self, attribute: .Top, multiplier: 1.0, constant: 16)
let widthConstraint = NSLayoutConstraint(item: hotSpot, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 40)
let heightConstraint = NSLayoutConstraint(item: hotSpot, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 40)
self.addConstraints([verticalConstraint, horizontalConstraint, widthConstraint, heightConstraint])
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
现在,这个按钮在整个应用程序中的多个位置使用,但它被放置在不同的位置。因此,每个视图控制器都将使用该UIView。
因此,从技术上讲,按钮的外观保持不变,但该按钮的约束条件会根据其位置不断变化。我想在这里遵循干燥(不要重复)技术。
我以前做过这种事情,但是代码被重复了好几次,效率不高。怎么办?
感谢您的帮助。谢谢 您可以创建自定义导航控制器,并将视图作为属性存储在其中。每个视图控制器都可以访问导航控制器,因此它们只能引用该属性和使用视图所需的时间。应该保持干燥。您可以创建自定义导航控制器,并将视图作为属性存储在其中。每个视图控制器都可以访问导航控制器,因此它们只能引用该属性和使用视图所需的时间。应保持干燥。使用xib创建自定义视图。将UIButton添加为子视图
本教程将非常有用。使用xib创建自定义视图。将UIButton添加为子视图 教程将是有益的