2012-06-25 57 views
0

我想縮短我的UITableView的高度,並在下面放一個按鈕。我嘗試使用此代碼:更改UITableView的大小,並把它放在它下面

// set the frame size 
CGRect frame = self.view.frame; 
frame.size.height = 355; 
self.view.frame = frame; 

//set up the button 
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[button addTarget:self 
      action:@selector(buttonPress:) 
forControlEvents:UIControlEventTouchUpInside]; 
[button setTitle:@"Add to Current Workout" forState:UIControlStateNormal]; 
button.frame = CGRectMake(20, 365, 280, 40); 
[self.view addSubview:button]; 
在viewDidAppear方法

,但所發生的一切是認爲越短,當我向下滾動按鈕覆蓋我的細胞之一(它也與tableview中滾動)。我怎樣才能改變tableview的高度並在視圖下面有一個按鈕?

回答

2

根據文檔,self.view返回「觸摸最初發生的視圖」。要改變tableView,你需要使用self.tableView,它返回「由控制器對象管理的tableView」,假設你在TableViewController中這樣做。改變第一和第三行:

CGRect frame = self.tableView.frame; 
frame.size.height = 355; 
self.tableView.frame = frame; 

要獲得的按鈕的tableView下出現,按照this question你可以將其設置爲的tableView的tableFooterView。因此,改變最後一行:

self.tableView.tableFooterView = button; 
+0

我完全忽略了這一點。我做了更改,但問題仍然存在。桌子的高度不變,但按鈕不在桌子底下。它在表格的頂部,但只有向下滾動時纔可見。有任何想法嗎? –

+0

你是否將'self.view'的最後一行更改爲'self.tableView'?你仍然想要添加按鈕到'self.view'。 – dmur

+0

不,該按鈕仍然被添加到self.view –

0

您需要降低表視圖的大小,而不是你的整個視圖(因爲您目前正在做)。

應該是self.tableView.frame = frame(其中tableview是你的UITableView的名稱)。

相關問題