Я создаю приложение, которое использует UITAbleView для отображения некоторых данных, извлеченных из базы данных SQLite. Приложение начинается с заставки, затем переходит к основному виду. Я использовал конструктор интерфейса для добавления объекта UITableView. Когда приложение запускается, UITableView не того размера, который был создан в IB. Кроме того, при прокрутке UITAbleView работает очень хаотично. Трясется, прыгает, с экрана слетает заголовок и т. Д.
Я провел некоторое исследование и прочитал, где это может быть из-за того, как я перехожу с заставки на главный экран.
Это метод UIApplication из PorjectFiveAppDelegate:
- (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;
}
Это код из метода loadView SplashViewController:
- (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:
Scrollers: показывает вертикальные скроллеры; Прокрутка включена
Взаимодействие: взаимодействие с пользователем включено
Рисование: Авторазмер подпредставлений