2011-03-05 48 views
0

好吧,我一直在努力解決這個問題整天,我越來越接近。我試圖創建一種方法來查看多個可以放大圖像的scrollView/imageView嵌套對。如何實現兩個單獨的UIScrollViews與嵌套的UIImageViews ...只有一個是放大

當視圖加載時,只有一個scrollView佔據了整個屏幕,但是當按下按鈕時,我將第一個scrollView的寬度減半,並取消隱藏另一個(它具有嵌套的imageView in它也是)就在它旁邊。所以有一個分割視圖效果,理想情況下用戶將能夠分別捏和放大每個圖像。

所以我除了單獨的捏和縮放部分以外所有工作。無論我在屏幕上哪裏捏,只有第一個scrollView放大。所以即使我觸摸另一個scrollView,它仍然隻影響第一個。

我有他們設置在IB,然後他們設置在viewDidLoad中這樣說:

[scrollView setBackgroundColor:[UIColor blackColor]]; 
[scrollView setCanCancelContentTouches:NO]; 
scrollView.clipsToBounds = YES; // default is NO, we want to restrict drawing within our scrollview 
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite; 

scrollView.minimumZoomScale = 1; 
scrollView.maximumZoomScale = 5; 
scrollView.delegate = self; 
[scrollView setScrollEnabled:YES]; 

imageView3 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"monitor.JPG"]]; 

[scrollView addSubview:imageView3]; 
//[scrollView setFrame:CGRectMake(0, 0, 1024, 660)]; 


[scrollView1 setBackgroundColor:[UIColor blackColor]]; 
[scrollView1 setCanCancelContentTouches:NO]; 
scrollView1.clipsToBounds = YES; // default is NO, we want to restrict drawing within our scrollview 
scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite; 

scrollView1.minimumZoomScale = 1; 
scrollView1.maximumZoomScale = 5; 
scrollView1.delegate = self; 
[scrollView1 setScrollEnabled:YES]; 

imageView31 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"monitor.JPG"]]; 

[scrollView1 addSubview:imageView31]; 

然後我隱藏和取消隱藏不同scrollViews(取決於工具欄上的segmentedControl指數40我上午我在正確的方向前進?是否有可能有兩個單獨訪問scrollViews?

任何幫助,將不勝感激。

謝謝!

編輯:

好吧,所以我通過並更新了clipToBunds位... DUH。它絕對讓它看起來更好,但仍然沒有解決問題。以下是我要調用的代碼,具體取決於所選索引:

-(void) pickedOne{ 


if(segment.selectedSegmentIndex == 0){ 

    [scrollView setFrame:CGRectMake(0, 0, 1024, 660)]; 
    [scrollView setContentSize:CGSizeMake(1024, 660)]; 
    scrollView.hidden = NO; 

    scrollView1.hidden = YES; 
    scrollView2.hidden = YES; 
    scrollView3.hidden = YES; 

}else if(segment.selectedSegmentIndex == 1){ 

    [scrollView setFrame:CGRectMake(0, 0, 512, 660)]; 
    scrollView.zoomScale = 1.0; 
    scrollView.hidden = NO; 


    [scrollView1 setFrame:CGRectMake(512, 0, 512, 660)]; 
    scrollView1.zoomScale = 1.0; 
    scrollView1.hidden = NO; 

      scrollView2.hidden = YES; 
      scrollView3.hidden = YES; 

} 

該方法有什麼重大錯誤嗎?

如果我縮小放大右側的scrollView,它會使滾動視圖更大(但不會增加scrollView2圖像的大小),但它會增加第一個scrollView圖像的大小,無論scrollViews ...奇怪

回答

1
scrollView.clipsToBounds = NO; // default is NO, we want to restrict drawing within our scrollview 

這不是你想要的相反嗎?將其設置爲YES限制將繪圖限制在您的滾動視圖中。

這聽起來像你沒有調整scrollview的大小。您是否調整其內容或其中的圖像視圖?你可以發佈當你點擊按鈕時調用的代碼嗎?

+0

嘿謝謝你的回答,我發佈了一個編碼的代碼。請注意,在最底部,我能夠清楚地識別正在發生的確切行爲,就像它正在工作一樣... – Jarom 2011-03-05 00:41:12

+0

可能您已將視圖層次結構混淆起來。如果您在任何'UIView'上調用'recursiveDescription',它將返回所有子視圖的完整描述。嘗試以這種方式記錄您的頂級視圖,看看您是否有意外看到另一個視圖。 – Jim 2011-03-05 01:07:49

相關問題