2015-11-30 2 views
0

У меня есть этот код в viewDidLoad:когда кнопка дома нажата вид изначальный изменен?

[self.navigationController setNavigationBarHidden:YES]; 
    self.edgesForExtendedLayout = UIRectEdgeNone; 
    self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight; 
    self.view.backgroundColor = [UIColor whiteColor]; 


    //we need to add white background behind the status bar 
    CGFloat statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height; 
    UIView* statusBarWhiteBackGround = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, statusBarHeight)]; 
    [statusBarWhiteBackGround setBackgroundColor:[UIColor whiteColor]]; 
    [self.view addSubview:statusBarWhiteBackGround]; 

    UIView * redBackGroundColor = [[UIView alloc] init]; 
    [redBackGroundColor setBackgroundColor:[UIColor redColor]]; 
    redBackGroundColor.frame =CGRectMake(0,statusBarHeight , self.view.frame.size.width, self.view.frame.size.height-statusBarHeight); 
    [self.view addSubview:redBackGroundColor]; 

вид statusWhiteBackGround используется для изменения цвета строки состояния. вот результат приведенного выше кода:

enter image description here

но когда приложение ввести фон, а затем обратно на передний план, изменение зрения redBackGroundColor это orging.y, как вы можете видеть на картинке внизу:

enter image description here

чем проблема? спасибо

+0

Попробуйте ввести код - (void) viewWillAppear: (BOOL) анимированный вместо viewDidLoad – Nilesh

ответ

0

Создать UIView программно по методу

-(void)viewDidLayoutSubviews{ 

    screen=[[UIScreen mainScreen] bounds]; 

//Simple view 
    self.customView = [[CustomAlertOKView alloc]initWithFrame:CGRectMake(0, 20, screen.size.width, screen.size.height)]; 

    [self.view addSubView:customView]; 

} 

или

Создание представления с помощью раскадровки и установить й как 0, у значения, как 20, ширина и высоты в зависимости от размера экрана

@IBOutlet UIView *customView; 

установить выходное отверстие в раскадровке,

Затем установите цвет фона пользовательского вида на redcolor и основной вид на белый цвет

self.view.backgroundColor = [UIColor whiteColor]; 
customView.backgroundColor = [UIColor redColor]; 
+0

благодарю вас за ответ. но я не понимаю, какая разница между вашим кодом и моим? – david

+0

@ david нет необходимости добавлять два вида, добавить только один вид с y значением как 20 через раскадровку и установить цвет фона, основанный на базовом представлении, и представление, которое добавлено u – satheesh

+0

Изменения пользовательского интерфейса обычно происходят во время выполнения с помощью " viewDidLayoutSubviews "всякий раз, когда вы вносите изменения в пользовательский интерфейс, пожалуйста, сделайте это на" viewDidLayoutSubviews метод – satheesh

Смежные вопросы