2013-03-09 63 views
1

我已經添加了一個子視圖到我的tableview,並且當用戶滾動tableview時,子視圖會隨之滾動。我如何防止這種情況?我知道它可能沿着不向tableview的子視圖添加視圖的路線,但我不知道有任何其他方式來做到這一點。謝謝。iOS防止tableview的子視圖滾動tableview

+0

你想實現什麼?具有靜態背景的表視圖? – Etan 2013-03-09 22:08:48

+1

將有問題的視圖添加到tableview的父級。 – Till 2013-03-09 22:17:16

+0

標準桌面視圖,滾動啓用。我有一個「連接超時」視圖,它是動畫出現的tableview的子視圖,然後再次隱藏。如果用戶在顯示視圖時滾動表格,則滾動表格... – 2013-03-09 22:18:29

回答

3

如果您想讓視圖成爲表視圖的子視圖,那麼可以通過在scrollViewDidScroll方法中更改其origin.y值來使其浮動(非滾動)。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    self.iv.frame = CGRectMake(self.ivOrigin.x, self.ivOrigin.y + self.tableView.bounds.origin.y, self.iv.frame.size.width, self.iv.frame.size.height); 
} 

在這個例子中,「IV」是用於在圖像視圖中的屬性,而「ivOrigin」是圖像視圖的初始來源(當我創建的圖像視圖及其在viewDidLoad中框架定義的一個屬性)。

+0

這節省了我的一天!謝謝! – CodePlumber 2014-11-05 17:00:42

2

UITableView的構建和打算成爲滾動事物的視圖。

因此,您可以與之對抗,因爲您發現的內容相當困難,因爲組件的所有內容都是圍繞滾動和快速顯示完整列表數據的子集而建立的......或者,您可以不要與它對抗,並將靜態物品放在桌面上作爲固定位置物品。

如果有原因無法在主視圖中添加表視圖和動畫輸出項,則始終可以添加包含表視圖和動畫視圖的自定義UIView類。讓您的自定義視圖類將包含的表視圖顯示爲.table屬性,並且可以調整要放入​​的容器,以便在需要時使用「mycontainerObject.tableview」而不是「tableview」。

是的,編寫自定義UIView子類並給它一些屬性來保存UITableView以及任何你想要動畫的UIView是多一點工作..但是從長遠來看,它可能比嘗試更安全「破解」到UITableView的方法和視圖層次結構中,試圖給它一個「固定位置」的行爲。