2016-12-01 2 views
0

Я очень новичок в разработке iOS и никогда раньше не делал автомат, у меня есть на самом деле семь кнопок на контроллере вида, который должен смотреть вокруг на каждом экране без фиксации высоты и ширины .... Я просмотрел много учебников, но не мог понять, как я могу добавить ограничения на эти круглые кнопки и показывать их в одном месте на каждом экране. Я хочу, чтобы кнопки фактически увеличивали размер при увеличении и уменьшении экрана при уменьшении размера экрана. Пожалуйста, помогите и покажите, какие ограничения следует добавить. this shows how buttons are added on my view controller Auto layout show button round без фиксирования высоты и ширины

ответ

0

Если вы хотите идеальные круглые кнопки (круг), тогда ширина и высота должны быть одинаковыми. Для этого установите ограничение на аспект с мультипликатором 1: 1, чтобы ширина и высота стали равными.

Основываясь на скриншоте вы предоставили, смотрите ниже, как ограничения должны выглядеть следующим образом:

enter image description here

-2

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

[self.view layoutIfNeeded]; 
[self.view setNeedsLayout]; 
self.yourButton.layer.cornerRadius = self.yourButton.frame.size.height/2; 
self.yourButton.clipsToBound = YES; 
+0

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

0

Ну, две точки:

  • Должность: Ну, вы должны четко понимать «ту же позицию в каждом экране», я думаю, вы знаете view.frame = CGRectMake(10, 20, 50, 50), но тот же код не приведет к «той же позиции» на разных экранах важно то, что вам нужно. Подумайте о растущем экране, у вас есть квадрат на нем, что вы хотите, чтобы это квадратное изменение? Различные стили изменения приводят к разному коду.

  • Размер: Вы сказали, что вы хотите квадрат увеличения или уменьшения с экрана, основной путь пусть square.width && square.height меняется с экрана, если раскладка использование кадров вы можете написать view.frame = CGRectMake(10, 20, SCWidth * 0.0666, SCHeight * 0.0833), конечно autoLayout поддержки масштаба высчитывают, я рекомендую вам использовать Кладка добавить макет, образец кода, как:

[square mas_remakeConstraints:^(MASConstraintMaker *make) { make.width.equalTo(self.mas_width).multipliedBy(0.0083); }];

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