2013-05-20 154 views
0

我有一個detailviewcontroller,Dance,帶有滾動視圖。我已經設置了detailViewController的尺寸和實現與滾動視圖,滾動視圖重新進入頁面時截斷視圖

- (void)viewDidAppear:(BOOL)animated 
{ 
self.title = self.full_name; 
[super viewDidAppear:animated]; 
pagescroll.ScrollEnabled = YES; 
[pagescroll setContentOffset:CGPointMake(0,0) animated:NO]; 
pagescroll.contentSize = CGSizeMake(320, 1300); 
} 

的detailviewcontroller已到其所連接「子頁面」(關於對象的詳細信息)。它使用prepareforsegue處理與頁面的連接。我可以毫無問題地將信息傳遞給子頁面。

從其中一個子頁面重新進入detailviewcontroller時,scrollview將不會一直滾動到頂部,即detailviewcontroller頁面被截斷。根據我點擊按鈕轉到其中一個子頁面之前滾動的距離,頁面也被截斷得不同。

幫助我消除截斷的禍害。

+0

首先嚐試,之後的contentOffset設置的contentSize。 – danypata

+0

謝謝,不幸的是,這不是問題所在。 –

回答

0

viewDidAppear方法將始終在視圖顯示後調用,因此您可能想要查看您認爲不屬於的代碼行,例如初始化代碼。

我的假設是這些代碼行可以放在viewDidLoad中,因爲viewDidLoad只在視圖加載到內存時調用一次。我覺得你並不總是能夠滾動,並在每次重新輸入詳細視圖控制器時間設置滾動視圖的內容大小:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.title = self.full_name; 
    pagescroll.ScrollEnabled = YES; 
    pagescroll.contentSize = CGSizeMake(320, 1300); 
} 

,這樣你就只剩下設置內容viewDidAppear偏移,以避免截斷:

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    [pagescroll setContentOffset:CGPointMake(0,0) animated:NO]; 
} 

或者,也許你可以重置內容視圖前右偏移會消失:

- (void)viewWillDisappear:(BOOL)animated 
{ 
    pagescroll.contentOffset = CGPointMake(0, 0); 
    [super viewWillDisappear:animated]; 
} 
+0

加入:[self.pagescroll setContentOffset:CGPointMake(0,0)animated:YES];到viewWillDisappear方法。子頁面加載時看起來很有趣,但它起作用。 –

+0

我猜想發生了什麼事情是,點(0,0)被設置爲滾動視圖的任何位置的頂部,當我去到子頁面(?)時。 –

+0

contentOffset是視圖在滾動視圖中移動的距離,因此將其設置爲(0,0)就像再次滾動到左上角一樣:http://stackoverflow.com/questions/3339798/what-does-contentoffset-做-IN-A-的UIScrollView –

相關問題