簡體   English   中英

如何以編程方式在UITableView上添加UIView

[英]How to add UIView over UITableView programmatically

我想在我的tableViewController類和NavigationBar下的表視圖上添加一個UIView 如果我這樣添加它:

[self.view addSubview:self.manualView];

它位於UITableView上方(實際上,我希望它們位於相同的z-index上)。 我也想在用戶按下某個按鈕時以編程方式刪除UIView。

UITableViewController's視圖是UITableView ,因此向其添加子視圖可能不是您想要的。 我認為最好的解決方案是改用UIViewController 如果給它一個覆蓋整個( UIView )視圖的tableView,它的行為就像UITableViewController一樣。

然后,使用addSubview (和removeSubview建議的removeSubview)執行的代碼就可以正常工作。

只要在添加表視圖之后添加視圖,堆棧就可以自理。

解決此問題有兩種方法。 天真(創建視圖並將其添加到子視圖):

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
view.backgroundColor = [UIColor blackColor];
[self.view addSubview:view];

這引入了與布局放置和空間沖突有關的許多問題。

更好的解決方案:通過以下方式返回表中相應部分的頁眉視圖或頁腳視圖:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

此方法是UITableViewController默認符合的UITableViewDelegate協議的一部分。

您可以使用[self.view removeSubview:self.manualView]; 響應用戶按下按鈕。 而且,您不能使兩個視圖具有相同的Z-index,但是可以通過參考Apple的UIView文檔中的管理視圖層次結構”部分來更改視圖的深度。

暫無
暫無

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

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