使用 Swift 3 以编程方式将部分图像放置在 UIView 中的另一个图像之上
Programmatically place partial image over another in UIView using Swift 3
我上周刚开始 Swift 工作,如果以下方法是将部分图像放置在另一幅图像之上的正确方法,我需要一个建议。
我有一个 UIView,我在其中以编程方式创建 3 个图像。左箭头图像、中间移动图像和右箭头图像如下所示。我可以在移动图像上部分放置 50% 的箭头图像吗?
我试过:
func setupUI(){
let mobileImage = UIImage(named: "mobile")
let arrowImage = UIImage(named: "arrow")
middleView = UIImageView(frame: CGRect(x: arrowImage!.size.width/2, y:0 , width:mobileImage!.size.width, height:mobileImage!.size.height))
middleView.image = mobileImage
middleView.layer.borderWidth = 1.0
middleView.layer.cornerRadius = 5.0
self.addSubview(middleView)
let yForArrow = mobileImage!.size.height - arrowImage!.size.height
leftArrow = UIImageView(frame: CGRect(x: 0, y:yForArrow, width:arrowImage!.size.width, height:arrowImage!.size.height))
leftArrow.image = arrowImage
self.addSubview(leftArrow)
let rightArrowX = mobileImage!.size.width
rightView = UIImageView(frame: CGRect(x: rightArrowX, y:yForArrow, width:arrowImage!.size.width, height:arrowImage!.size.height))
rightView.image = arrowImage
self.addSubview(rightView)
}
*一开始它不工作,因为我忘记在 init 方法中添加 setupUI()。如下面的答案所示。
设置框架是正确的做法还是我应该使用约束?
对我来说,这看起来很糟糕,因为我正在对 CGRect 中的数字进行硬编码。
*此图像是在 MS 画图中创建的,以显示它在 iPhone 上的外观。
我发现了我在 init 方法中没有添加 setupUI() 的问题。
SetupUI 以编程方式在 UIView 上添加图像。因为它丢失了,所以 iPhone 模拟器中没有图像出现。
override init(frame: CGRect) {
super.init(frame: frame)
setupUI() // Code to add images in UIView
}
但我发现人们对这个问题投了反对票,这非常令人沮丧。
我上周刚开始 Swift 工作,如果以下方法是将部分图像放置在另一幅图像之上的正确方法,我需要一个建议。
我有一个 UIView,我在其中以编程方式创建 3 个图像。左箭头图像、中间移动图像和右箭头图像如下所示。我可以在移动图像上部分放置 50% 的箭头图像吗?
我试过:
func setupUI(){
let mobileImage = UIImage(named: "mobile")
let arrowImage = UIImage(named: "arrow")
middleView = UIImageView(frame: CGRect(x: arrowImage!.size.width/2, y:0 , width:mobileImage!.size.width, height:mobileImage!.size.height))
middleView.image = mobileImage
middleView.layer.borderWidth = 1.0
middleView.layer.cornerRadius = 5.0
self.addSubview(middleView)
let yForArrow = mobileImage!.size.height - arrowImage!.size.height
leftArrow = UIImageView(frame: CGRect(x: 0, y:yForArrow, width:arrowImage!.size.width, height:arrowImage!.size.height))
leftArrow.image = arrowImage
self.addSubview(leftArrow)
let rightArrowX = mobileImage!.size.width
rightView = UIImageView(frame: CGRect(x: rightArrowX, y:yForArrow, width:arrowImage!.size.width, height:arrowImage!.size.height))
rightView.image = arrowImage
self.addSubview(rightView)
}
*一开始它不工作,因为我忘记在 init 方法中添加 setupUI()。如下面的答案所示。
设置框架是正确的做法还是我应该使用约束?
对我来说,这看起来很糟糕,因为我正在对 CGRect 中的数字进行硬编码。
*此图像是在 MS 画图中创建的,以显示它在 iPhone 上的外观。
我发现了我在 init 方法中没有添加 setupUI() 的问题。
SetupUI 以编程方式在 UIView 上添加图像。因为它丢失了,所以 iPhone 模拟器中没有图像出现。
override init(frame: CGRect) {
super.init(frame: frame)
setupUI() // Code to add images in UIView
}
但我发现人们对这个问题投了反对票,这非常令人沮丧。