Как сделать так, чтобы кнопки правильно масштабировались с моим изображением - PullRequest
0 голосов
/ 04 августа 2020

У меня есть изображение теннисного корта и кнопок, которые есть на каждой части корта. Как я могу сделать так, чтобы кнопки масштабировались в зависимости от устройства, но оставались на одном уровне с теннисным кортом?

Я новичок во всем этом, поэтому буду очень признателен за любую помощь!

1 Ответ

0 голосов
/ 04 августа 2020

Вы можете go "путь" автопластинга как vacawama ( Как получить точно такую ​​же точку на разных размерах экрана? ) или реализовать и переопределить

-(void)layoutSubviews { ... } //with Objective-C

override func layoutSubviews() { ... } //with swift

из вашего UIView. Или, если вы использовали UIViewControler, следующие

-(void)viewDidLayoutSubviews { ... } //in Objective-C

override func viewDidLayoutSubviews() { ... } //with swift

Эти методы вызываются, когда пользовательскому интерфейсу необходимо разметить свое содержимое, а также, если ваше представление масштабируется. Он также вызывается, когда вашему UIView выделяется -(instancetype)initWithFrame:(CGRect)rect в Objective- C или super.init(frame:CGRect) в swift. Кстати, создание экземпляра с помощью Storyboard также вызывает эти методы, что является одной из причин, по которой вы объявляете в Interface Builder, какой класс отброшен UIView или ViewController.

Чтобы узнать больше о layoutSubviews, посмотрите этот ответ { ссылка }.

class MyView: UIView {
    // assuming you have declared init() and so on
    // and a var myButton : UIButton 
    override func layoutSubviews() {
        myButton.frame = CGRect(x: 0, y:0, width:self.frame.size.width * 0.2, height:self.frame.size.height * 0.2)
    }
}

class MyViewController : UIViewController {
    // assuming you have declared init() or init(frame:) and so on
    // and a var myButton : UIButton
    override func viewDidLayoutSubviews() {
        //same as example above, but here you ask self.view.frame
        myButton.frame = CGRect(x: 0, y:0, width:self.view.frame.size.width * 0.2, height:self.view.frame.size.height * 0.2)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...