2013-10-24 8 views
0

我有一個正在更新的UIImageView的中心點。在正確的時間移動ImageView中心點

目前問題是我看到圖像視圖移動。我正在尋找的是在隱藏視圖時移動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

你看到移動的動畫還是隻是閃爍到新的位置?立即隱藏和取消隱藏它根本無濟於事。這與設置中心沒有什麼不同。 – Tricertops

+0

是的,它只是閃爍到新位置 – StuartM

+0

如果您在舊位置看到它,這意味着您沒有在正確的時間調用此方法。 – Tricertops

回答

0

的問題是,我是從更新的方法中心點:

-(void)viewDidLayoutSubviews 

這就是所謂的在某些時候是爲時過早。所以即使正在更新,中心點仍然是0,0。

這意味着視圖在中心點發生變化之前變爲隱藏/顯示,因此當再次調用該方法時,更新發生在中心點。

解決的辦法是檢查點是不是0,0,如果它保持隱藏。在我的例子中,它永遠不會是0,0--幸運的是。

0

爲什麼不只是做這樣的事情:

Hide the image 
Move the image 
Unhide the image 

不要問,如果它是隱藏等明確地隱藏它,移動它,然後取消隱藏的。

傑夫

+0

視圖初始化時是隱藏還是可見?如果你不想看到它,直到它處於正確的位置,我會認爲它應該被初始化並設置爲隱藏。將其移到適當的位置,然後取消隱藏視圖。 – physics90

+0

這就是我試過的,問題在於旋轉。然後,我需要隱藏它並重新計算正確的中心,並在正確的位置再次顯示,似乎無法解決問題 – StuartM