我需要裁剪圖像以匹配特定尺寸。我從底部開始有三層:在佔位符上使用手勢識別器平移UIImage UIView
- 我在
UIImage
的原始圖像。該圖像來自相機。 (叫cameraImage) - 我有一個
UIView
藏品這張圖片。當用戶點擊「裁剪」時,UIView的邊界用於裁剪其內部的原始圖像。 - 首先,我有一個嚮導圖像,向用戶顯示它們需要的尺寸,以平移,旋轉和捏合其圖像以適應。
我想將平移手勢添加到頂部指南圖像並讓它控制底部的原始圖像。所以指導圖片永遠不會移動,但它正在傾聽平移手勢。 我不知道如何重置識別器,而不會讓我的原始圖像跳回零。也許有人可以幫忙?
- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {
CGPoint translation = [recognizer translationInView:recognizer.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x+translation.x, recognizer.view.center.y+ translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:recognizer.view];
}
上面的代碼在我的手勢很好的情況下附加到底部圖像。問題是當用戶超出視圖邊界時,圖像停止平移並基本卡住。你再也碰不到了,所以它就坐在那裏。所以我想如果我將手勢附加到頂部,它會解決這個問題。
- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {
CGPoint translation = [recognizer translationInView:recognizer.view];
cameraImage.center = CGPointMake(recognizer.view.center.x+translation.x, recognizer.view.center.y+ translation.y);
}
這幾乎奏效。我設置了cameraImage的中心,並刪除了重設識別器的第三行。如果我沒有移除它,每次嘗試和平移時,cameraImage都會跳回到相同的位置。它幾乎可以工作,因爲當您再次單擊圖像時,它不會從您觸摸的像素開始。它將圖像移回到原始位置,然後讓您平移。
謝謝!我必須對代碼進行一次更改才能使其工作。我將'self.savedTranslation = translation;'改爲'self.savedTranslation = updatedTranslation;'我沒有想過使用UIScrollView來做這件事。這聽起來比我目前正在做的更有希望,謝謝! – 2013-04-10 21:30:26
哦,真好!我更新了我的答案! – 2013-04-10 21:58:18