我有一个带有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

最佳答案

使用CGRectZero方法中的viewDidLoad初始化tableView,然后在viewWillAppear:方法中设置self.myTableView.frame,因为在此方法中,视图的几何形状已经设置并且self.view.bounds将是正确的。因此,通常:在viewDidLoad中初始化视图,但在viewWillAppear:中设置其几何形状。

关于iphone - 通过initWithFrame添加 subview 。 UINavigationBar的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10335824/

10-10 14:47