3

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

4

2 回答 2

2

CGRectZero使用in方法初始化 tableView,viewDidLoad然后在方法中viewWillAppear:设置,self.myTableView.frame就像在此方法中一样,视图的几何图形已经设置并且self.view.bounds是正确的。所以一般来说:在 中初始化视图viewDidLoad,但在 中设置它们的几何图形viewWillAppear:

于 2012-04-26T14:53:53.610 回答
0

那这个呢?

CGRect r = initWithFrame:self.view.bounds;
r.size.height -= 49.0;
self.myTableView = [[UITableView alloc] initWithFrame:r];

希望能帮助到你...

于 2012-04-26T14:52:12.913 回答