使用addSubview将UIView移动到其他UIView中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用addSubview将UIView移动到其他UIView中相关的知识,希望对你有一定的参考价值。
我有UIImageView
,我想将它与右边对齐。但我试着开始只是移动:
let imageView = UIImageView(image: UIImage(named: "icon_delete"))
var rect = imageView.frame
rect.origin.x += 100
imageView.frame = rect
photosViewController.overlayView.bottomStackContainer.addSubview(imageView)
但似乎它不起作用,图像设置在左侧:
怎么了?
答案
尝试使用autolayout锚点
imageView.leadingAnchor.constraint(equalTo: bottomStackContainer.leadingAnchor, constant: 100).isActive = true
bottomStackContainer是stackView吗?您应该通过.addArrangedSubview()方法添加排列的子视图。
另一答案
尝试使用setNeedsDisplay()
方法重绘视图。
参考:https://www.hackingwithswift.com/example-code/uikit/how-to-force-a-uiview-to-redraw-setneedsdisplay
另一答案
首先,假设:
photosViewController.overlayView.bottomStackContainer
是一个视图(我在我的代码片段中调用containsView),尝试类似于:
let imageView = UIImageView(image: UIImage(named: "icon_delete"))
containingView.addSubview(imageView)
imageView.translatesAutoresizingMaskIntoConstraints = false
containingView.translatesAutoresizingMaskIntoConstraints = false
imageView.trailingAnchor.constraint(equalTo: containingView.trailingAnchor).isActive = true
如果您需要将图像从后缘移开,您可以:
imageView.trailingAnchor.constraint(equalTo: containingView.trailingAnchor, constant: -10).isActive = true
或者你需要移动它。注意:如果您忘记在两个视图上将自动调整遮罩设置为false,则会出现运行时错误。
以上是关于使用addSubview将UIView移动到其他UIView中的主要内容,如果未能解决你的问题,请参考以下文章
UIWindow 和 UIView addSubview 问题