Ios4 为我的表视图设置边界不起作用(xcode 4.2,iOS 5.0)

Ios4 为我的表视图设置边界不起作用(xcode 4.2,iOS 5.0),ios4,ios5,xcode4.2,Ios4,Ios5,Xcode4.2,我想为我的表视图(在UITableViewController中)设置边界,使其宽度小于屏幕宽度(以便可以在表视图后面看到背景图像)。我在viewDidLoad方法中使用以下代码行: [[self tableView] setBounds:CGRectMake(10,44, 300, 460)]; 但是,这一行不起作用,tableview仍然占据页面的整个宽度 我怎样才能做到这一点 此外,只要我在自定义表视图的主题上,我还希望更改单元格中文本的字体。我该怎么做呢?谢谢。一个UITable

我想为我的表视图(在UITableViewController中)设置边界,使其宽度小于屏幕宽度(以便可以在表视图后面看到背景图像)。我在viewDidLoad方法中使用以下代码行:

  [[self tableView] setBounds:CGRectMake(10,44, 300, 460)]; 
但是,这一行不起作用,tableview仍然占据页面的整个宽度

我怎样才能做到这一点


此外,只要我在自定义表视图的主题上,我还希望更改单元格中文本的字体。我该怎么做呢?谢谢。

一个
UITableViewController
视图
属性是一个
UITableView
。所以你不能缩小它的
视图
来揭示它的背后,因为它背后没有任何东西(至少就它而言)

有一个相对简单的解决方案。我假设,根据您的代码示例,您在名为“
tableView
”的控制器上有一个
UITableView
属性,如果没有,则需要创建它

1) 将视图控制器更改为
UIViewController
子类,而不是
UITableViewController
子类。通过将
YourClass:UITableViewController
替换为
YourClass:UIViewController
,在
.h
中轻松完成

2) 在
.xib
文件中,将新的
UIView
拖到画布上(不在tableView上)

3) 将tableView拖动为该视图的子视图,如图所示:

4) 将文件的所有者视图属性连接到刚才添加的UIView

5) 检查您的连接是否如下所示:

通过这些更改,您现在可以将帧设置为小于视图大小。您有两种选择来执行此操作: 1) 使用类似以下代码的代码:

-(void)viewDidLoad{
    [super viewDidLoad];
        // set background red to see change
    self.view.backgroundColor = [UIColor redColor];
    CGFloat sideMargin = 10;
    CGFloat topBottomMargin = 44;
    CGFloat originX = sideMargin;
        // compute width based on view size
    CGFloat sizeWidth = (self.view.bounds.size.width - (sideMargin * 2));
    CGFloat originY = topBottomMargin;
        // compute height based on view size
    CGFloat sizeHeight = (self.view.bounds.size.height - (topBottomMargin * 2));
        // set tableView frame
    self.tableView.frame = CGRectMake(originX, originY, sizeWidth, sizeHeight);
}
2) 直接在interface builder中更改设置。比如:


A
UITableViewController
view
属性是一个
UITableView
。所以你不能缩小它的
视图
来揭示它的背后,因为它背后没有任何东西(至少就它而言)

有一个相对简单的解决方案。我假设,根据您的代码示例,您在名为“
tableView
”的控制器上有一个
UITableView
属性,如果没有,则需要创建它

1) 将视图控制器更改为
UIViewController
子类,而不是
UITableViewController
子类。通过将
YourClass:UITableViewController
替换为
YourClass:UIViewController
,在
.h
中轻松完成

2) 在
.xib
文件中,将新的
UIView
拖到画布上(不在tableView上)

3) 将tableView拖动为该视图的子视图,如图所示:

4) 将文件的所有者视图属性连接到刚才添加的UIView

5) 检查您的连接是否如下所示:

通过这些更改,您现在可以将帧设置为小于视图大小。您有两种选择来执行此操作: 1) 使用类似以下代码的代码:

-(void)viewDidLoad{
    [super viewDidLoad];
        // set background red to see change
    self.view.backgroundColor = [UIColor redColor];
    CGFloat sideMargin = 10;
    CGFloat topBottomMargin = 44;
    CGFloat originX = sideMargin;
        // compute width based on view size
    CGFloat sizeWidth = (self.view.bounds.size.width - (sideMargin * 2));
    CGFloat originY = topBottomMargin;
        // compute height based on view size
    CGFloat sizeHeight = (self.view.bounds.size.height - (topBottomMargin * 2));
        // set tableView frame
    self.tableView.frame = CGRectMake(originX, originY, sizeWidth, sizeHeight);
}
2) 直接在interface builder中更改设置。比如: