私はUITAbleViewを使ってSQLiteデータベースから取得したデータを表示するアプリケーションを作成しています。アプリはスプラッシュスクリーンから始まり、メインビューに移行します。私はUITableViewオブジェクトを追加するためにインターフェイスビルダを使用しました。アプリケーションが起動すると、UITableViewはIBで作成されたサイズではありません。また、スクロールするとき、UITAbleViewは非常に不安定な動作をします。揺れたり、ジャンプしたり、ヘッダーが画面から飛び出したりします。UITableView Scroll Erratically
私はいくつかの調査を行い、スプラッシュ画面からメインビューに移行しているためにどこにあるのか読んでいました。
これはPorjectFiveAppDelegateからのUIApplication方法であって:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ProjectFiveSplashController alloc] initWithNibName:@"ProjectFiveSplashController" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
これはtheSplashViewControllerのloadViewメソッドのコードである:
- (void)loadView{
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
UIView *view = [[UIView alloc] initWithFrame:appFrame];
view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
self.view = view;
[view release];
splashImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ProjectFiveSplash.png"]];
splashImageView.frame = CGRectMake(0,0,1024,768);
[self.view addSubview:splashImageView];
viewController = [[ProjectFiveViewController alloc] initWithNibName:@"ProjectFiveViewController" bundle:[NSBundle mainBundle]];
viewController.view.alpha = 0.0;
[self.view addSubview:viewController.view];
activityLoading = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activityLoading.frame = CGRectMake(0, 0, 1024, 768);
activityLoading.center = self.view.center;
[self.view addSubview: activityLoading];
}
のUITableViewオブジェクトはIBにこれらのプロパティが割り当てられている:
スクロールバー:垂直スクロールバーを表示します。スクロール有効 相互作用:ユーザーの操作は 描画有効:自動サイズ変更サブビューを