【发布时间】:2015-10-26 14:29:50
【问题描述】:
我正在尝试创建一个自定义 callOutView,为此我有一个 bubbleView,它是 UIView 在此视图中的子类,我想创建 3 个彼此相邻的视图。首先是imageView,其静态宽度和高度为 60。然后是 UIView,其动态宽度取决于 bubbleView 的总宽度。然后最后还有另一个具有静态高度和宽度的 imageView 再次为 60。我该如何实现这一点?我在下面尝试了snapKit,但似乎不起作用。
说明我想要什么
我尝试过的代码
bubbleView = BubbleView()
bubbleView?.clipsToBounds = true
bubbleView?.layer.masksToBounds = true
self.addSubview(bubbleView!)
let logoImageView = UIImageView()
logoImageView.contentMode = UIViewContentMode.ScaleAspectFill
logoImageView.image = UIImage(data: logoImage!)
bubbleView?.contentView.addSubview(logoImageView)
logoImageView.backgroundColor = UIColor.whiteColor()
let informationView = UIView()
bubbleView?.contentView.addSubview(informationView)
informationView.backgroundColor = UIColor.redColor()
let discView = UIImageView()
discView.contentMode = UIViewContentMode.ScaleAspectFill
discView.image = UIImage(data: logoImage!)
bubbleView?.contentView.addSubview(discView)
discView.backgroundColor = UIColor.whiteColor()
logoImageView.snp_makeConstraints { (make) -> Void in
make.top.equalTo(bubbleView!).offset(0)
make.left.equalTo(bubbleView!).offset(0)
make.height.equalTo(60)
make.right.equalTo(informationView)
}
informationView.snp_makeConstraints { (make) -> Void in
make.top.equalTo(bubbleView!).offset(0)
make.left.equalTo(logoImageView).offset(0)
make.height.equalTo(60)
make.right.equalTo(discView).offset(0)
}
discView.snp_makeConstraints { (make) -> Void in
make.top.equalTo(bubbleView!).offset(0)
make.left.equalTo(informationView).offset(0)
make.height.equalTo(60)
make.right.equalTo(bubbleView!)
}
【问题讨论】:
-
您没有在约束中设置宽度。将
make.width.equalTo(60)添加到您的图像视图中。
标签: ios swift uiview nslayoutconstraint