【发布时间】:2020-09-30 22:54:10
【问题描述】:
我有一个调色板图像视图,因为我想根据我从后端获得的 x 和 y 轴放置一个加号图标(imageView)。如果我得到 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 英寸模拟器进行检查。我是否遗漏了任何东西来实现 x=0 和 y=0,如果我将 colorPaletteImage 的宽度赋予 plusIconImageView 的 x 轴,它不会以 x 轴结束,它会停留在宽度结束之前imageview的,我不知道为什么会这样,需要帮助
【问题讨论】:
-
首先,你为什么不使用自动布局和约束?第二,你什么时候做这个?例如,如果此代码在
viewDidLoad()中,则框架尚未完成设置。 -
@DonMag 我认为如果我使用带有自动布局的加号图标,则无法动态移动框架,这就是以编程方式创建它的原因。我在 viewWillAppear() 中这样做。
-
viewWillAppear()中的布局未完成,这可能是您的问题。你的调色板 imageView 是固定大小的吗?还是会根据设备而改变?显示您用于设置 imageView 框架的代码。 -
是的,你是对的,这就是问题所在。调色板imageView会根据设备而改变,现在我在viewDidLayoutSubviews中尝试了,它调用了两次并创建了两个加号图标,第二个的框架设置完美,如果我在viewDidAppear中设置我的imageView的框架会解决我的问题吗?
-
我将此作为答案添加,因此遇到此问题的其他人会看到解决方案。
标签: ios objective-c swift uiimageview coordinates