【发布时间】:2017-10-02 10:56:01
【问题描述】:
我上周刚开始使用 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 Paint 中创建的,以显示它在 iPhone 上的外观。
【问题讨论】:
-
什么不起作用?
-
如果问题是图像被截断,那么您可能应该将图像的 clipToBounds 设置为 false
-
我将在这里发布完整的代码。但是为什么问题被给予-4分。我的代码有一些问题,这就是它不起作用的原因。此图像是在 MS Paint 中创建的,以显示它在 iPhone 上的外观。
-
我认为一些用户在投票,因为仍然不清楚问题是什么。您的框架似乎是正确的(至少对于 x,肯定是 y),但我不明白您不喜欢什么。图像是否被剪切?他们错位了吗?您能否显示最终结果以及有关该问题的详细信息?
-
我错过了在 init 方法中添加 setupUI() 所以图像没有被渲染。另外,我想问一下设置框架是否是正确的做法,或者我应该使用约束。