Я очень новичок в разработке iOS и никогда раньше не делал автомат, у меня есть на самом деле семь кнопок на контроллере вида, который должен смотреть вокруг на каждом экране без фиксации высоты и ширины .... Я просмотрел много учебников, но не мог понять, как я могу добавить ограничения на эти круглые кнопки и показывать их в одном месте на каждом экране. Я хочу, чтобы кнопки фактически увеличивали размер при увеличении и уменьшении экрана при уменьшении размера экрана. Пожалуйста, помогите и покажите, какие ограничения следует добавить. this shows how buttons are added on my view controller Auto layout show button round без фиксирования высоты и ширины
ответ
Если вы хотите идеальные круглые кнопки (круг), тогда ширина и высота должны быть одинаковыми. Для этого установите ограничение на аспект с мультипликатором 1: 1, чтобы ширина и высота стали равными.
Основываясь на скриншоте вы предоставили, смотрите ниже, как ограничения должны выглядеть следующим образом:
Используйте этот код, чтобы сделать круглую кнопку. Вы можете программно получить текущую высоту кнопки, а затем назначить половину высоты углу радиуса, чтобы сделать ее круглой.
[self.view layoutIfNeeded];
[self.view setNeedsLayout];
self.yourButton.layer.cornerRadius = self.yourButton.frame.size.height/2;
self.yourButton.clipsToBound = YES;
Ну, две точки:
Должность: Ну, вы должны четко понимать «ту же позицию в каждом экране», я думаю, вы знаете
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, чтобы сделать это, вы можете увидеть ограничения имеют множитель, чтобы устранить проблему.
я уже сделал это вокруг .... но я хочу, чтобы она появилась в его одинаковое положение, увеличивая или уменьшая высоту и ширину, как требуется на каждом экране. – TestShroff