我有一个使用UINavigationBar的视图: 的的AppDelegate :
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
_homeScreen = [[PrepareScreen alloc] init];
self.mainViewController = [[MyViewController alloc] initWithScreenDef:[self.homeScreen projectHomeScreen] AndBounds:self.window.bounds];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.mainViewController];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
然后我有一个班级
MyViewController : UIView <UITableViewDataSource,UITableViewDelegate>
在 .h 文件中,我有:
- (void)viewDidLoad
{
[super viewDidLoad];
self.myTableView = [[UITableView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:self.myTableView];
}
之后我的屏幕高度错误。我想我的myTableView有一个size.height-49.0
答案 0 :(得分:2)
在CGRectZero
方法中使用viewDidLoad
初始化tableView,然后在方法viewWillAppear:
中设置self.myTableView.frame
,就像在此方法中一样,视图的几何图形已经设置并且{{1会是正确的。通常情况下:在self.view.bounds
中初始化视图,但在viewDidLoad
中设置几何图形。
答案 1 :(得分:0)
这个怎么样?
CGRect r = initWithFrame:self.view.bounds;
r.size.height -= 49.0;
self.myTableView = [[UITableView alloc] initWithFrame:r];
希望它有所帮助...