2012-06-27 30 views
0

我有一個UIScrollview,裏面有一個UIImageView,顯示一個平面圖。我也有一個UIButton在滾動視圖中充當標記/引腳。縮放時保持UIButton相對

我已經在圖像上實現了縮放/雙擊,但是當圖像滾動和/或縮放時,UIButton元素顯然不會移動。

我曾嘗試下面的代碼,試圖resposition按鈕時完成縮放:

[myButton setFrame:CGRectMake(
          (myButton.frame.origin.x - myButton.frame.size.width/2) * _scrollView.zoomScale, 
          (myButton.frame.origin.y - myButton.frame.size.height/2) * _scrollView.zoomScale, 
          myButton.frame.size.width, myButton.frame.size.height)]; 

這個移動的按鈕左上角。

有沒有人知道我應該如何保持按鈕相對於圖像(與Google地圖上的標記相同)。

+0

你想按鈕縮放(而不是隻是移動)?你有沒有嘗試添加Button作爲你的UIImageView的子視圖? (心智設置autoresizesSubviews根據) –

回答

0

玉以及這是解決了以下內容:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setBackgroundImage:[UIImage imageNamed:@"Marker.png"] forState:UIControlStateNormal]; 
button.frame = CGRectMake(640.0, 230.0, 30.0, 46.0); 
[button addTarget:self action:@selector(aMethod:)forControlEvents:UIControlEventTouchUpInside]; 
[self.imageView addSubview: button]; 
self.imageView.userInteractionEnabled = YES; 

基本上通過添加按鈕,直接將ImageView的,然後讓用戶交互,我是能夠得到所需的所有功能。

0

我最近回答了question very similar to this。如果你不需要實時更新(只在變焦完成時更新),那麼你應該可以使用這裏列出的方法。

+0

不,我不需要按鈕縮放 - 它可以保持相同的大小,只需要是相對的(即如果它指向平面圖上的區域B,它總是需要指向那裏,而不管縮放級別如何)。 所以如果我將按鈕添加到UIImageView,它會自動執行此操作? – user892028

+0

這個想法是,你不應該直接讓你的UIScrollView擁有UIButton。相反,讓superview擁有這個按鈕,然後計算你想要按鈕移動到的點。 – Dustin

+0

嗯,我剛剛添加了按鈕的imageView而不是scrollView,它自動爲我做所有的相對定位!輝煌! – user892028