2015-09-18 2 views
1

Я пытаюсь поставить 2 UIButtons по горизонтали, но не повезлоAlign UIButtons по горизонтали с помощью автоматической компоновки (программно)

  1. Я использую ограничения Автокомпоновка программно.
  2. Я не хочу помещать их в контейнер и выравнивать центр к этому контейнеру.

    NSDictionary *metrics = @{@"kLeftPadding":@(kLeftPadding), 
              @"kRightPadding":@(kRightPadding), 
              @"kMiddlePadding":@(kMiddlePadding), 
              @"kBottomPadding":@(kBottomPadding)}; 
    NSDictionary *constrainedViews = @{@"titleLabel": self.titleLabel, 
                @"btnToday" : self.btnToday, 
                @"btnPickaDay" : self.btnPickaDay, 
                @"dividerView" : dividerView}; 
    NSArray *contraints = @[@"V:|-[titleLabel]-kBottomPadding-[btnToday(==40)]-[btnPickaDay(==btnToday)]-kBottomPadding-[dividerView]-0-|", 
             @"H:|-kLeftPadding-[titleLabel]-|", 
             @"H:|-kLeftPadding-[btnToday]-kMiddlePadding-[btnPickaDay(==btnToday)]-kRightPadding-|", 
             @"H:|-0-[dividerView]-0-|"]; 
    

кнопку второй начинается где первые концы, а в следующей строке, а не на то же самое.

+0

У вас может быть включенной скриншот, что вы делаете и что хотите. –

+0

@iOS_DK здесь http://i.imgur.com/AnXeofz.png –

+0

@iOS_DK Выше ссылка - текущий результат, и вот нужный результат: http://i.imgur.com/udddlRZ.png –

ответ

2

Я пробовал свой код, но он разбился, так как в соответствии с вашим вопросом вам просто нужно написать ниже код.

UILabel *lblText = [UILabel new]; 
[lblText setText:@"Some Title Text"]; 
[lblText setTranslatesAutoresizingMaskIntoConstraints:NO]; 
[self.view addSubview:lblText]; 

UIButton *btnRed = [UIButton new]; 
[btnRed setBackgroundColor:[UIColor redColor]]; 
[btnRed setTranslatesAutoresizingMaskIntoConstraints:NO]; 
[self.view addSubview:btnRed]; 

UIButton *btnGreen = [UIButton new]; 
[btnGreen setBackgroundColor:[UIColor greenColor]]; 
[btnGreen setTranslatesAutoresizingMaskIntoConstraints:NO]; 
[self.view addSubview:btnGreen]; 

UIView *vwLine = [UIView new]; 
[vwLine setBackgroundColor:[UIColor blueColor]]; 
[vwLine setTranslatesAutoresizingMaskIntoConstraints:NO]; 
[self.view addSubview:vwLine]; 


NSDictionary *dictViews = @{@"red":btnRed,@"green":btnGreen, 
          @"line":vwLine,@"lbl":lblText}; 

NSDictionary *dictMetrics = @{@"height":@(40),@"offset":@(-40)}; 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[red]-0-[green(==red)]-20-|" options:0 metrics:nil views:dictViews]]; 

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[line]-20-|" options:0 metrics:nil views:dictViews]]; 

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[lbl]-20-|" options:0 metrics:nil views:dictViews]]; 

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(height)-[lbl]-(height)-[red(height)]-(offset)-[green(==red)]-50-[line(2)]" options:0 metrics:dictMetrics views:dictViews]]; 

результат:

enter image description here

Надеется, что это поможет вам решить вашу проблему. Если какой-либо запрос даст мне знать.

+0

На самом деле мой скриншот это мой вывод, который я не хочу, я хочу, чтобы эти две кнопки были выровнены –

+0

Это мой желаемый результат: http://i.imgur.com/udddlRZ.png –

+0

Здесь вы можете увидеть название, две кнопки и делитель, эти две кнопки не выровнены в настоящее время, они похожи на ваш результат. [self.view addConstraints: [Ограничения NSLayoutConstraintWithVisualFormat: @ "H: | -20- [red] -0- [green (== red)] - 20- |" options: 0 metrics: nil views: dictViews]]; [self.view addConstraints: [Ограничения NSLayoutConstraintWithVisualFormat: @ "V: | -0- [red (height)] - 0- [green (== red)]" options: 0 metrics: dictMetrics views: dictViews]]; Выше строк может помочь получить выравниваемые кнопки, но вместе с заголовком и разделителем его беспорядок как-то –

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