I would like to set the bounds for my table view (in a UITableViewController) so that it has a smaller width than the screen width (so that a background image can be seen behind the table view). I use the following line of code in my viewDidLoad method:
[[self tableView] setBounds:CGRectMake(10,44, 300, 460)];
However, this line is not working and the tableview still takes up the whole width of the page.
How can I make this work?
Also, as long as I’m on the subject of customizing table views, I would also like to change the font of the text in the cells. How would I go about doing that? Thank you.
A
UITableViewController‘sviewproperty is aUITableView. So you cannot shrink it’sviewto reveal what’s behind, since there is nothing (At least as far as it’s concerned) behind it.There is a relatively easy solution. I’m assuming, based on your code sample that you have a
UITableViewproperty on your controller named “tableView“, if not it’s creation would be necessary.1) Change your view controller to be a
UIViewControllersubclass instead of aUITableViewControllersubclass. Easily done in the.hby replacingYourClass:UITableViewControllerwithYourClass:UIViewController.2) In the
.xibfile drag out a newUIViewto the canvas (not on the tableView).3) Drag the tableView to be a subview of the view, as shown:

4) Connect the File’s Owner’s view property to be the UIView you just added.
5) Check that your connections look something like this:

With these changes you can now set your frame to be smaller than your view’s size. You have two choices how to do this:
1) Use code like this code:
2) Change the setting in interface builder directly. Something like: