2009-10-16 127 views
3

嘿傢伙,這是我第一次在這裏發佈,而且我很新的iphone編程。我剛剛開始大約一個月前,只有修補小教程類型的應用程序,但無論如何,繼承人我的問題UIImageView的UIButtons放大

我目前有一個UIScrollView可滾動和可縮放,加載UIImageView子視圖,我想添加一些在圖像視圖上控制(UIButtons),但是當我放大和縮小整個組(按鈕和圖像)時,會縮小圖像。

,如果我加入UIButtons到我的UIScrollView和縮放,圖像縮放和按鈕停留在原始的地方

,如果我的UIButtons添加到我的UIImageView他們正確地放大,但按鍵的arent了。 IE他們失去了互動。

後來生病添加大量的按鈕到一個數組中,並添加他們。

我希望得到任何幫助我能

這是我mainViewController.m的一部分

- (void)viewDidLoad 

{

[scrollView2 setBackgroundColor:[的UIColor blackColor];

[scrollView2 setCanCancelContentTouches:NO]; 

scrollView2.clipsToBounds = YES; // default is NO, we want to restrict drawing within our scrollview 
scrollView2.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
scroll2ImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bigNH.jpg"]]; 
[scrollView2 addSubview:scroll2ImageView]; 
[scrollView2 setContentSize:CGSizeMake(scroll2ImageView.frame.size.width, scroll2ImageView.frame.size.height)]; 
scrollView2.minimumZoomScale = .5; 
scrollView2.maximumZoomScale = 3; 
scrollView2.delegate = self; 
[scrollView2 setScrollEnabled:YES]; 




UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

CGRect newSize = CGRectMake(658, 435, 50, 50); // position in the parent view and set the size of the button 
myButton.frame = newSize; 
[myButton setImage:[UIImage imageNamed:@"redStop.png"] forState:UIControlStateNormal]; 
// add targets and actions 
[myButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
// add to a view 
[scroll2ImageView addSubview:myButton]; 

[redLineArray addObject:myButton]; 


[scroll2ImageView release]; 

}

+0

目前尚不清楚你想要發生什麼。你想讓按鈕縮放並保持功能嗎?按鈕縮放與滾動視圖,或子視圖?按鈕不放大? – mikestew 2009-10-17 04:27:59

+0

對不起,我不清楚,我想我的按鈕放大與我的背景圖像相同的規模,並保持功能 – Hunter 2009-10-17 05:11:11

+1

嗨,你找到一個解決方案嗎?即使我正面臨這個問題。縮放後,按鈕事件不會觸發 – lostInTransit 2009-11-18 14:43:35

回答

0

這可能沒有幫助,這是不是它看來,你想做的事情。

然而,當我想用​​一個滾動視圖相關的按鈕,我添加了一個父視圖,添加按鈕,以便查看並滾動視圖添加到視圖。按鈕和滾動視圖將是兄弟。這允許用戶滾動滾動視圖的內容,同時確保按鈕始終可見。

-isdi-

0

默認情況下,有UIImageView的禁用用戶交互。你有沒有改變這個?

而且,我會很不安添加子視圖的UIImageView的,它實際上意味着持有一個圖像。最好是創建一個普通的UIView並將UIButtons和UIImageView添加到該UIViews。控制順序非常簡單,這樣按鈕就會出現在圖像的頂部。

P.S.只是爲了讓您的生活更輕鬆,而不是:

[scrollView2 setContentSize:CGSizeMake(scroll2ImageView.frame.size.width, scroll2ImageView.frame.size.height)]; 

您可以使用:

[scrollView2 setContentSize:scroll2ImageView.frame.size]; 
0

做一個單一視圖中包含所有可縮放內容(一切它會出現),並把它說內容查看。現在把你想要的東西放在contentView,imageView和所有的按鈕等等。

在你的UIScrollView代表這個地方:(請務必設置了滾動的委託,如果您還沒有)

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { 
    return self.contentView; 
} 

只有一個視圖允許放大,但卻是一個視圖可以包含其他意見由於它們是兒童視圖,因此會進行縮放。

另外一定要將scrollView的contentSize值設置爲您的可縮放contentView的確切大小。