[英]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.