我有一个调色板imageview,在我想要放置一个加号图标(imageview)根据x和Y轴我从后端得到。 如果我得到x=0和y=0,加号的帧是正确放置的
对于y轴,如果我将调色板imageView的高度设置为加号图标框架的y轴,则该图标不会变为实际的(0,0)
我使用的代码如下
let cWidth = self.colorPalleteImageView.frame.size.width // 348
let cHeight = self.colorPalleteImageView.frame.size.height // 378.5
let imageView = UIImageView(image: appImages.roundPlusIcon.image)
imageView.frame = CGRect(x: 0, y: cHeight, width: 22, height: 22)
colorPalleteImageView.addSubview(imageView)
我正在用iPad 12.9英寸模拟器检查这一点。 如果我把颜色调色板图像的宽度给plusIconImageView的x轴,它不会在x轴结束,它会停留在imageview的宽度结束之前,我不知道为什么会发生这种情况,需要帮助吗
在自动布局完成设置框架之前,您正在使用框架大小。
我建议使用约束条件,但如果你想坚持使用框架坐标。。。
ViewDidLoad()
ViewDidLayoutSubViews()
或ViewDidAppear()
Frame.Origin
ImageView.frame=CGRect(X:cWidth,Y:cHeight,Width:22,Height:22)
主人:
ImageView.Frame=CGRect(x:0,y:0,width:22,height:22)
轴是:
0,0-------------->; X
这是一个非常重要的问题
null
null
null
v
用0,0把小图像的左上角放到大图像的左上角。
您可以通过将height
属性修改为超级视图绑定的高度来修复此问题。 您需要知道frame
和bounds
之间的区别,才能理解为什么会发生这种情况。 简单地说,frame是相对于它的超级视图的CGRect,bounds是相对于它自己的坐标的CGRect
。 很多详细的解释都可以在网上找到,只需要谷歌框架和界限,你会习惯这两个在你玩了很多次之后。 以下是解决此问题的方法。
let cHeight = self.colorPalleteImageView.bounds.size.height