2011-12-05 71 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

相关问题