2014-01-12 15 views
0

我在xib中創建了一個非常長的視圖(> 2000像素)。這個xib被加載,然後,在它的ViewController中,我切換滾動視圖的根視圖(我想要2000像素滾動);在外部初始框架時,scrollView無響應的UIButton

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIView *view = self.view; 

    UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:self.view.frame]; 

    scroll.contentSize = self.view.bounds.size; 

    self.view = scroll; 
    [scroll addSubview:view]; 
} 

長視圖上有一個按鈕,但如果它放置在長視圖的頂部外面不觸發(即,初始屏幕框外)。

This post看起來很相似,但略有不同,因爲SO用戶正在動態擴展滾動視圖的大小。在這種情況下,固定大小的滾動視圖(全屏),但我不能在我的xib中的初始框架之外的東西。調試過程中,我可以看到兩個滾動視圖和內容視圖的框架設定(長)...

<UIView: 0x946db50; frame = (0 0; 320 2320); autoresize = W+H; layer = <CALayer: 0x946db20>> 

<UIScrollView: 0x9077e10; frame = (0 0; 320 2320); clipsToBounds = YES; gestureRecognizers = <NSArray: 0xb388bd0>; layer = <CALayer: 0x9276f60>; contentOffset: {0, 0}> 

我怎樣才能確保水龍頭都使得人們滾動到視圖控件?

+0

檢查我更新的解決方案的更多詳細信息 – CoolMonster

回答

0
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds]; 

這將創建一個滾動視圖的比賽視圖控制器的實際視圖,則

UIView *newView=[[UIView alloc] initWithFrame:CGRectMake(0,0,320,2320)]; 

[scrollView addSubview:newView]; 

//ü也可以建立在故事板的長遠來看這種觀點,千萬不要用自我。視圖內滾動這個就更加長遠的眼光烏爾層次關鍵的附加控制器內部則是指以新的實例在視圖 - 控制器然後用這裏

scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, newview.frame.size.height); 

然後設置

烏爾滾動視圖macth烏爾滾動視圖和滾動視圖內視圖的寬度的高度OLD答案

集contentsize財產......

+0

我在上面的代碼中執行此操作,但它不起作用。 – ConfusedNoob

0

經過反覆試驗我解決了這個問題,但我不確定它爲什麼起作用。在上面的代碼中,我初始化UIScrollView的內容視圖的大小框架(實際上沒有意義,不知道它爲什麼滾動)。

相反,我得到了它的工作上漿屏幕(因爲這將是全屏幕):

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].bounds]; 

現在,這一切工作順順當當。奇;很想知道這是爲什麼。