2014-12-24 2 views
0

Итак, я пытаюсь сделать 4 кнопки, каждая из которых занимает 1/4 экрана. Однако, когда я создаю кнопки, как показано ниже, все они находятся в одном положении. Я не знаю, как это возможно, так как я установил их происхождение в разных местах. Может ли кто-нибудь объяснить, почему это происходит, и предложить решение?Выполнение кнопок относительно размера

Edit: я удалил автоматическую раскладку и не решить проблему

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    self.sequence = [[NSMutableArray alloc] init]; 
    float sizeWidth = [self view].bounds.size.width/2; 
    float sizeHeight = [self view].bounds.size.height/2; 
    CGPoint origin = [self view].bounds.origin; 
    // Configure button sizes 
    CGRect topLeft = CGRectMake(origin.x/2, origin.y/2, sizeWidth, sizeHeight); 
    _zeroButton.frame = topLeft; 
    CGRect topRight = CGRectMake(origin.x * 3/2, origin.y/2, sizeWidth, sizeHeight); 
    _oneButton.frame = topRight; 
    CGRect bottomLeft = CGRectMake(origin.x/2, origin.y * 3/2, sizeWidth, sizeHeight); 
    _twoButton.frame = bottomLeft; 
    CGRect bottomRight = CGRectMake(origin.x * 3/2, origin.y * 3/2, sizeWidth, sizeHeight); 
    _threeButton.frame = bottomRight; 

} 
+0

попробуйте проверить, как это: NSLog (@ "% @", NSStringFromCGPoint (origin)); после CGPoint origin = ... и вы поймете свою ошибку. – stosha

+0

Да, @ стоша вправо. Я скажу вам вашу ошибку, но лучше всего это вы сами увидите. –

+0

Происходит {0,0}? Если это так, то ваши действия всегда будут иметь {0,0}. –

ответ

0

Все ваши прямоугольников в начале координат 0,0, потому что вы используете (только) умножение и деление операций на них ... Возможно, вы должны посмотреть на CGRectOffset() .. например.

CGRect rct = self.view.bounds; 
rct.size.width /= 2.0; 
rct.size.height /= 2.0; 

UIButton *button1 = [[UIButton alloc]initWithFrame:rct]; //top left 
    // add target, addToView etc.. 

UIButton *button2 = [[UIButton alloc]initWithFrame: CGRectOffset(rct, rct.size.width, 0.0) ]; 
    // etc.. 

UIButton *button3 = [[UIButton alloc]initWithFrame: CGRectOffset(rct, 0.0, rct.size.height) ]; 
    //etc 
UIButton *button4 = [[UIButton alloc]initWithFrame: CGRectOffset(rct, rct.size.width, rct.size.height) ]; 
//etc 
Смежные вопросы