[英]Adjusting uitableview height
我正在使用uitableview创建一个简单的应用程序。 我想用代码创建所有内容。 我使用以下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
FBVCalendarViewController *calendarViewController = [[FBVCalendarViewController alloc] init];
self.window.rootViewController = calendarViewController;
[self.window makeKeyAndVisible];
return YES;
}
...
- (void)loadView
{
UITableView *calendarItems = [[UITableView alloc] init];
self.view = calendarItems;
}
它可以正常工作,但应用程序会填充整个电话屏幕,与标准电话标题栏相交。
调整视图高度的正确方法是什么?
由于UITableView
继承自UIScrollView
,因此您应该注意IOS 7
出现的更改。
您的问题的解决方案是:
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
[self setNeedsStatusBarAppearanceUpdate];
self.automaticallyAdjustsScrollViewInsets = NO;
}
(这会将表格视图保留在状态栏下方)。
希望能有所帮助。 但是您可能应该看看IOS 7引入的更改。
因此,我在loadView中使用以下代码解决了我的问题:
- (void)loadView
{
UITableView *calendarItems = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
UIView *rootView = [[UIView alloc] init];
[rootView addSubview:calendarItems];
self.view = rootView;
}
我使用空的UIView作为tableView的父级,并更改了构造函数以显式指定UITableView框架。 我认为更好的方法是使用自动布局(当前,当我旋转设备时,它只是无法按预期方式工作)并将表视图定位到全屏或实现设备旋转回调并在那里更新框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.