gpt4 book ai didi

ios - 如何将不同位置的相同 uiview 倍数添加到 UIViewController?

转载 作者:搜寻专家 更新时间:2023-11-01 06:44:20 25 4
gpt4 key购买 nike

我正在努力快速实现这一目标。 enter image description here

到目前为止,我创建了自己的自定义 View ,它是 UIView 类的子类:

 class MyConnections: UIView {

override init(frame: CGRect) {
super.init(frame: frame)
}

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}


// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
let context = UIGraphicsGetCurrentContext()
CGContextSetLineWidth(context, 1)
CGContextSetStrokeColorWithColor(context, UIColor.blackColor().CGColor)
let circle = CGRectMake(5, 60, 80, 80)
CGContextAddEllipseInRect(context, circle)
CGContextStrokePath(context)
CGContextSetFillColorWithColor(context, UIColor.whiteColor().CGColor)
CGContextFillEllipseInRect(context, circle)

}

}

这是我的 View Controller ,我将上面的 View 添加为 subview :

let profile = MyConnections()

override func viewDidLoad() {
super.viewDidLoad()

profile.backgroundColor = UIColor.clearColor()
view.addSubview(profile)
self.profile.setTranslatesAutoresizingMaskIntoConstraints(false)

//constraints for the location button
let horizontalConstraint = NSLayoutConstraint(item: self.profile, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Leading, multiplier: 1.0, constant: 10)
let verticalConstraint = NSLayoutConstraint(item: self.profile
, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Top, multiplier: 1.0, constant: 20)
let widthConstraint = NSLayoutConstraint(item: self.profile, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0, constant: 150)
let heightConstraint = NSLayoutConstraint(item: self.profile, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0, constant: 150)

self.view.addConstraints([verticalConstraint, horizontalConstraint, widthConstraint, heightConstraint])
// Do any additional setup after loading the view.
}

上面的所有代码都在顶部给我一个圆圈。现在我想在图像中看到的不同位置多次重复同一个圆圈。我可以创建 uiview 的多个实例,将它们添加为 subview ,但每次我都必须为其定义新的约束,而我不想这样做。

任何人都可以帮助我并给我一个有效的答案吗?

最佳答案

您应该知道 UIView 可以有一个父 View /父 View 。如果您将它添加为不同位置的 subview (使用 addSubview 方法),它将从第一个位置删除并作为 subview 添加到新位置。在您的情况下,要添加更多 subview ,您必须创建更多 UIView 对象,而不是使用单个全局 UIView。如果布局重复,UITableView/UICollectionView 是更好的选择。

关于ios - 如何将不同位置的相同 uiview 倍数添加到 UIViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32028465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com