UIButton Программно на основе устройства - PullRequest
0 голосов
/ 26 мая 2011

Я программно создал UIButton, который вставляется в приложение только для iPhone или iPad. Можно ли сделать это для универсального приложения (т.е. изменить размер кнопки и расположение в соответствии с пользовательским интерфейсом устройства)?

//insert button for inbox///////////////////////////////////////////////////////////

appButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain];

        [appButton setBackgroundImage:[UIImage imageNamed:@"18-envelope.png"]       forState:UIControlStateNormal];

        appButton.layer.borderColor=[UIColor clearColor].CGColor;
        appButton.backgroundColor = [UIColor whiteColor];

        appButton.frame = CGRectMake(290.0, 25.0, 24.0, 24.0);
        [appButton addTarget:self
                          action:@selector(showAppInbox)
                forControlEvents:UIControlEventTouchDown];

        [self.window addSubview:appButton];


//END/////////////////////////////////



//Call method to show inbox
-(void) showAppInbox
{
[[AppInboxManager sharedManager] show];
}

// новый код // НАЧАЛО вставить кнопку для INBOX /////////////////////////////////////////////// ////////////////

   if ([[[UIDevice currentDevice] model] isEqualToString:@"iPhone"])

    {


    appButton.frame = CGRectMake(200, 25, 24, 16);



   }

    else

    {

    appButton.frame = CGRectMake(700, 25, 24, 16);


    }

    appButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain];

    [appButton setBackgroundImage:[UIImage imageNamed:@"envelope_white.png"] forState:UIControlStateNormal];
    appButton.layer.borderColor=[UIColor clearColor].CGColor;
    appButton.backgroundColor = [UIColor clearColor];



    [appButton addTarget:self
                      action:@selector(showAppInbox)
            forControlEvents:UIControlEventTouchDown];  

Ответы [ 2 ]

0 голосов
/ 27 мая 2011

@ Саймонкс, спасибо, что подтолкнул меня в правильном направлении. Я нашел ответ, и это было сделано с помощью следующего:

 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
//put your code here
}

else

{
//put your code here
}
0 голосов
/ 27 мая 2011

Вы можете просто сделать следующее:

if ([[[UIDevice currentDevice] model] isEqualToString: @"iPhone"]){


      appButton.frame=XXXX;

}else{

      appButton.frame=YYYY;

}

Дополнительная информация в:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html

...