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

  [[self tableView] setBounds:CGRectMake(10,44, 300, 460)]; 

但是,此行不起作用,并且tableview仍占据页面的整个宽度。

我该如何进行这项工作?

另外,只要我要自定义表格视图,我还想更改单元格中文本的字体。 我将如何去做? 谢谢。

===============>>#1 票数:5 已采纳

UITableViewControllerview属性是UITableView 因此,您无法缩小view以揭示背后的原因,因为其背后没有任何内容(至少就其而言)。

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

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

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

3)拖动tableView作为视图的子视图,如下所示: 在此处输入图片说明

4)将文件所有者的view属性连接到刚添加的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)直接在界面生成器中更改设置。 就像是:

在此处输入图片说明

  ask by user1072337 translate from so

未解决问题?本站智能推荐: