Как масштабировать кнопки для разных устройств

1) Нет ничего плохого в том, что вы сделали в 1, если вы хотите использовать атрибуты из базового класса, тогда вам нужно вызвать базовый класс init () или даже если ur использует методы из базового класса, которые использует атрибуты своего собственного класса, тогда вам нужно вызвать baseclass init ()

2) Вы не можете использовать super для запуска init с First и Second, потому что python использует MRO (порядок разрешения метода)

см. следующий код: это иерархия алмазов

class A(object): 
    def __init__(self):
        self.a = 'a'
        print self.a

class B(A):
    def __init__(self):
        self.b = 'b'
        print self.b

class C(A):
    def __init__(self):
        self.c = 'c'
        print self.c

class D(B,C):
    def __init__(self):
        self.d = 'd'
        print self.d
        super(D, self).__init__()

d = D()
print D.mro()

Он печатает:

d
b
[<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <type 'object'>]

MRO питона будет D, B, C, A

, если у B нет метода init для C.

3) Вы не можете использовать все методы, чтобы иметь такую ​​же подпись.

0
задан JimHawkins 17 January 2019 в 07:27
поделиться

2 ответа

  • Сделайте так, чтобы кнопки имели ширину, пропорциональную ширине вида.

  • Затем добавьте константу соотношения сторон 1: 1, чтобы кнопки оставались квадратными.

  • Затем расположите кнопки относительно размеров экрана (не совсем).

Это должно сделать работу за вас.

Установка пропорциональной ширины

Предположим, что размер основного вида в конструкторе интерфейса составляет 375 x 667. Предположим, вы положили на нее кнопку 90 х 90. Чтобы он всегда имел ширину, пропорциональную ширине основного вида,

  1. Добавьте ограничение равных ширин в суперпредставление для кнопки.
  2. Измените множитель ограничения: измените его с 1 на (90/375)

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

Вот скриншоты с iPhone XR и iPhone 5s, которые я взял из образца, который я только что сделал, чтобы попробовать это. Как видите, кнопки остаются в пределах экрана и сохраняют свою форму. Надеюсь, это поможет.

enter image description here

enter image description here

0
ответ дан humblePilgrim 17 January 2019 в 07:27
поделиться

Похоже, вы не определили ограничения кнопки для супервизора. Например: левый край, верхний край ...

* изменить: опубликовать жалобу ниже #raisedeybrow Вам нужно будет определить (добавить ограничения), как далеко от края (слева и сверху, справа и снизу) вы хотите, чтобы ваши кнопки / кнопки были. Затем примените к кнопкам приоритеты обтекания и сжатия содержимого, чтобы все они масштабировались так, как вам хочется. Некоторые из них должны быть больше, другие, которые вы не хотите, чтобы они сжимались и т. Д. Можно установить, если хотите, чтобы они выглядели плавными

0
ответ дан Surpher 17 January 2019 в 07:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: