2011-12-05 70 views
0

我已經在xcode中使用了基於導航的應用程序模板,該模板的默認設置是設置表視圖來填充屏幕,但是我想讓表視圖填充一個更小的框架屏幕。基於導航的應用程序表視圖框架

這是它最初工作的代碼,但是如果從表中選擇一行並且用戶在按下表格視圖填充屏幕而不是框架時轉到下一個屏幕。

- (void)viewDidAppear:(BOOL)animated { 

    // set the frame size 
    CGRect frame = self.tableView.frame; 
    frame = CGRectMake(16.0, 36.0, 254.0, 350.0); 
    self.tableView.frame = frame; 

    [super viewDidAppear:animated]; 
    } 

任何幫助將不勝感激,謝謝。

+1

什麼是您的控制器類型?如果它是uitableviewcontroller那麼它會系統地調整大小,它必須是一個普通的uiviewcontroller。對於這種小桌子,我通常在背景上使用一個簡單的uiview,並在其中放置一個uitbaleview。 – gregory

+0

嗨,謝謝,是的,這是一個uitableviewcontroller,我該怎麼做呢? – Sami

回答

1

類的名稱更改爲的UIViewController,並添加一個IBOutlet

@interface mycontroller : UIViewController <UITableViewDelegate, UITableViewDataSource> { 
    IBOutlet UITableView* tableView; 
    .... 
} 

在IB刪除表,創建鏈接到控制器的視圖插座一個UIView。然後創建一個表格視圖,將其放置爲視圖的子視圖。這將保持其大小。將其出口設置爲tableView,將您的控制器設置爲委託和數據源。然後你只需要實現表視圖(numberOfSections ...,numberOfRows ...,cellForRow ...)的方法,就像你當前的控制器一樣。

+0

謝謝,工作完美。 – Sami

+0

我試圖做第二級視圖控制器的相同,所以我已經更改類名稱爲UIViewController而不是UITableViewController,並添加了一個IBOutlet,但是我沒有第二級視圖控制器的xib文件,所以有點卡住了。我已經嘗試創建一個新的xib添加一個視圖控制器,並選擇了視圖控制器的類,並添加了表視圖和鏈接插座,但我不知道文件的所有者類是什麼,因爲它只是說NSObject,是沒有任何聯繫。所以當我運行應用程序時,它崩潰了。有任何想法嗎? – Sami

+0

在IB中,您可以設置/更改文件的所有者類:選擇文件的所有者,打開身份檢查器(alt-cmd-3),右側窗格出現,並鍵入您的類名稱。 – gregory

相關問題