Ios4 为我的表视图设置边界不起作用(xcode 4.2,iOS 5.0)
我想为我的表视图(在UITableViewController中)设置边界,使其宽度小于屏幕宽度(以便可以在表视图后面看到背景图像)。我在viewDidLoad方法中使用以下代码行: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
[[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中更改设置。比如: