簡體   English   中英

UITableView(不是UITableViewCell)可以具有可變大小嗎?

[英]Can a UITableView (not UITableViewCell) have variable size?

我有一個UIView(在IB中創建),其中將UITableView分組為子視圖。 該表視圖下面是一個UIButton。 包含視圖的XIB將由幾個不同的視圖控制器加載,因此表視圖的內容可以在一個單元格和四個單元格之間變化。

這是我要實現的目標:加載視圖時,應根據單元格的數量調整tableview的高度(tableView.frame.size.height),並將按鈕放置在表格視圖的正下方。

能做到嗎? 如果以編程方式創建視圖,是否可以通過某種方式完成?

提前致謝

編輯:Pxl的建議正是我想要的。 不久之后,需要在表格視圖下方不僅僅是一個按鈕-這是通過創建一個包含我需要的所有內容的單獨的視圖,並實現tableView:viewForFooterInSection:和tableView:heightForFooterInSection:函數來實現的。

給那些嘗試做同樣事情的人的注釋:如果要為頁腳設置不同的高度,或者為某些部分設置頁腳的高度,則必須以編程方式創建tableview。 這是因為IB中設置的頁腳高度將覆蓋tableView:heightForFooterInSection:函數返回的高度。

如果只有很少的行,我是否建議您創建一個僅包含一個按鈕的特殊UITableViewCell?

然后將按鈕單元始終保持在最后一組的底部。 進行分組,使其不加標簽並顯示為好像按鈕位於表視圖的底部。 這樣,您就不必重新計算tableview的框架並重新繪制它。

如果由於有很多行而導致表格視圖滾動,那么您將計算表格視圖的高度,直到達到設置的最大值(此時表格視圖需要滾動以顯示更多行)。

一旦確定了表格視圖的高度,就需要顯示行,制作適當大小的框架,為其設置表格視圖的框架,將按鈕置於表格視圖的正下方,然后重新繪制視圖。

在這種情況下,布局和定位需要以編程方式完成。

UITableview是UIView的子類,因此您可以像UIView一樣更改其框架以適合您的需求,並且UITableView可以將其自身繪制為您提供的任何框架。

只需使用UITableViewDataSource和UITableViewDelegate為您提供的方法即可。

height = [self tableView:numberOfRowsInSection]*[self tableView:heightForRowAtIndexPath:] + A_CONSTANT_FOR_HEADER_AND_FOOTER_HEIGHT

我同意pxl的觀點,即在其中添加帶有按鈕的單元格可能是完成所需內容的最簡單方法。

無論是否執行此操作,表視圖的sizeToFit方法都應調整視圖的大小以(僅)適合其內容。 如果這不起作用,則可以使用numberOfSectionsrectForSection:建立一個循環,該循環確定表內容的高度,並手動重置其框架。 (然后將按鈕放在下面。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM