use*_*337 1 ios4 ios5 xcode4.2
我想设置我的表视图的边界(在UITableViewController中),使其宽度小于屏幕宽度(这样可以在表视图后面看到背景图像).我在viewDidLoad方法中使用以下代码行:
[[self tableView] setBounds:CGRectMake(10,44, 300, 460)];
Run Code Online (Sandbox Code Playgroud)
但是,此行无效,tableview仍然占用页面的整个宽度.
我怎样才能做到这一点?
此外,只要我在自定义表视图的主题,我也想更改单元格中的文本的字体.我该怎么做呢?谢谢.
A UITableViewController的view财产是UITableView.所以你不能缩小它view来揭示背后的东西,因为它背后没有任何东西(至少就其而言).
有一个相对简单的解决方案.我假设,根据您的代码示例,您UITableView的控制器上有一个名为" tableView" 的属性,如果不是,则需要创建它.
1)将视图控制器更改为UIViewController子类而不是UITableViewController子类.在轻松完成.h更换YourClass:UITableViewController用YourClass:UIViewController.
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);
}
Run Code Online (Sandbox Code Playgroud)
2)直接更改界面生成器中的设置.就像是:

| 归档时间: |
|
| 查看次数: |
6106 次 |
| 最近记录: |