2009-11-06 1 views
0

Я изучаю, как Objective-C на слоях iPhone просматривает главное окно.iPhone Добавление представлений в Windows Practice

Я пробовал переделать базовую программу, чтобы нарисовать два разных цветных прямоугольных вида на основной UIView для приложения, но он, похоже, не работает.

Мой текущий выход - белый экран. Однако, когда я закрываю приложение, он на короткое время показывает два прямоугольника, когда они закрываются, заставляя меня поверить, что они нарисованы, но не отображаются по какой-либо причине.

Предполагая, что приведенный ниже код psuedo (сокращен от исходной документации для StackOverflow, но скопирован непосредственно в мой проект), что еще мне нужно сделать для моего проекта, чтобы отобразить эти прямоугольники?

код от Apple, в моем файле TestAppDelegate.m:

- (void)applicationDidFinishLaunching:(UIApplication *)application {  
    // Create the window object and assign it to the 
    // window instance variable of the application delegate. 
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    window.backgroundColor = [UIColor whiteColor]; 

    // Create and initialize a simple red square 

    // Create and initializesimple blue square 

    // Add the square views to the window 
    [window addSubview:redView]; 
    [window addSubview:blueView]; 

    // Once added to the window, release the views to avoid the 
    // extra retain count on each of them. 
    [redView release]; 
    [blueView release]; 

    // Show the window. 
    [window makeKeyAndVisible]; 
} 

Ссылка на оригинал в Apple, Docs: http://tinyurl.com/y8alvgt

ответ

0

Вам может понадобиться вызвать setNeedsDisplay на окне

[window setNeedsDisplay]; 

это сказывается на CocoaTouch, что содержимое вашего окна изменилось и нужно перерисовать.

Вот ссылка на documentation.

+0

Полученная ошибка: «UIWindow может не отвечать на -setnNeedsDisplay» и ошибка времени выполнения. – LoganFrederick

+0

В этом вызове есть дополнительный 'n', если это не опечатка. Я действительно смотрел на API, но нет никакого параметра в сообщении setNeedsDisplay для UIWindow. попробуйте вынуть часть «: YES». Это от Mac Cocoa. – Randaltor