我有一个正在更新的UIImageView的中心点。
目前问题是我看到图像视图移动了。我正在寻找的是在隐藏视图时移动imageview,然后在更新中心点后再次显示它。
我创建了一个执行中心点更新的方法:
-(void)updateCenterPoint {
float newhintX = (self.originalImageCenterPoint.x * self.scaleDownOriginalImageRatio) + self.insideImageFrame.frame.origin.x;
float newhintY = (self.originalImageCenterPoint.y * self.scaleDownOriginalImageRatio) + self.insideImageFrame.frame.origin.y;
if (self.hintView.hidden == NO) {
self.hintView.hidden = YES;
self.hintView.center = CGPointMake(newhintX, newhintY);
} else {
self.hintView.center = CGPointMake(newhintX, newhintY);
}
if (self.hintView.hidden) {
self.hintView.hidden = NO;
}
}
在viewDidLoad中调用此方法似乎并不像我期望的那样。理想情况下,当视图加载时,我不希望看到hintView(图像视图),直到它处于正确的位置?
答案 0 :(得分:0)
为什么不做这样的事情:
Hide the image
Move the image
Unhide the image
而不是询问它是否被隐藏等明确地隐藏它,移动它,然后取消隐藏它。
杰夫
答案 1 :(得分:0)
问题是我正在从方法更新中心点:
-(void)viewDidLayoutSubviews
这在某些时候被称为太早了。所以即使它正在更新,中心点仍然是0,0。
这意味着在中心点发生变化之前视图已被取消隐藏/显示,因此当再次调用该方法时,更新发生在中心点。
决议是检查该点是否为0,如果隐藏它。在我的例子中它永远不会是0,0 - 幸运的是。