Свойство
A UITableViewController
* view
является UITableView
. Таким образом, вы не можете уменьшить его view
, чтобы показать, что позади, так как за ним ничего нет (по крайней мере, насколько это возможно).
Существует относительно простое решение. Я предполагаю, исходя из вашего примера кода, что у вас есть свойство UITableView
на контроллере с именем "tableView
", в противном случае его создание будет необходимо.
1) Измените ваш контроллер представления на подкласс UIViewController
вместо UITableViewController
подкласса. Легко сделать в .h
, заменив YourClass:UITableViewController
на YourClass:UIViewController
.
2) В файле .xib
перетащите новый UIView
на холст (не в tableView).
3) Перетащите tableView в подпредставление представления, как показано:
4) Соедините свойство view владельца файла с UIView, который вы только что добавили.
5) Убедитесь, что ваши соединения выглядят примерно так:
С этими изменениями вы можете установить frame , чтобы он был меньше размера вашего представления. У вас есть два варианта, как это сделать:
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) Измените настройку в конструкторе интерфейса напрямую. Что-то вроде: