Почему UIButton изменяет размер при доступе к свойству titleLabel?

Я пытаюсь настроить размер кнопки (это внутренний размер + немного больше), чтобы нарисовать собственный фон. Тем не менее, каждый раз, когда я получаю доступ к self.titleLabel внутри кнопки, размер и позиция переходят к размеру раскадровки. Мне не нужно ничего делать с ярлыком, чтобы воспроизвести это, просто извлеките его из кнопки.

Я поставил код регистрации на всем протяжении своей кнопки и контроллера просмотра, чтобы найти, где это происходит. Это происходит не из ретрансляции из подзонов или любого другого уведомления, которое я вижу, чтобы попасть в контроллер представления. Линия перед доступом к titleLabel, позиция и размер являются правильными. Линия после, она вернулась к позиции раскадровки. Комментирование доступа предотвращает привязку размера / позиции. Может ли кто-нибудь сказать мне, где и почему это происходит?

У меня нет ограничений (я могу сказать), но я борюсь с авто-макетом здесь? Должен ли я делать это иначе, как составление элементов управления или что-то еще?

Что-то подобное (или то же?) Было задано ранее, когда UIButton изменил заголовок, похоже, изменил его фрейм, а UIButton titleLabel изменился на печать? , но оба остались без ответа или объяснены просто «может быть, ошибка».

2 Solutions collect form web for “Почему UIButton изменяет размер при доступе к свойству titleLabel?”

Если в проекте включена автоматическая компоновка, тогда ДА, вы боретесь с автоматической компоновкой. У вас есть два варианта: либо подкласс UIButton, чтобы вы могли переопределить расчет собственного размера, либо изменить ограничения, чтобы внутренний размер не использовался в каких-либо ограничениях. Если вы сделаете последнее, то вы, вероятно, захотите создать IBOutlet для ограничения ширины, чтобы вы могли при необходимости изменить свойство constant .

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

  • ios auto-layout: программно заданное ограничение ширины
  • Как обращаться с приглашениями в игровом центре, если друг не продвинулся достаточно далеко в приложении, чтобы достичь метода installInvitationHandler?
  • iPhone Cordova - нажмите на поле ввода показывает и сразу скрывает клавиатуру
  • Выбор GMGridView переопределяет
  • Различные размеры шрифта для UILabel с использованием адаптивного макета
  • Как отобразить MKPinAnnotationView на MKMapview в быстром
  • didRegisterForRemoteNotificationsWithDeviceToken - Push-уведомления
  • Отсутствует ViewController.xib в Xcode 5
  • NSURLConnectionDelegate willSendRequestForAuthenticationChallenge не будет вызван на iOS 8
  • Новый экземпляр UIViewController в другом UIViewController: почему я не могу установить переменную экземпляра?
  • Вопрос о выпуске iOS с покупкой In-App
  • Interesting Posts

    Использование протокола как конкретного типа, соответствующего «AnyObject», не поддерживается

    Как создать универсальную библиотеку iOS для Objective-C и Swift?

    Выбранное устройство не может работать на Xcode 4.6

    приложение с Objective-C и быстрый сбой кода при запуске в режиме деблокирования, режим отладки

    Как настроить раскадровку iOS для отказов, таких как Instagram Stream?

    Обновление UIProgressView в UICollectionViewCell для загрузки файла

    iOS Simulator: недействительное состояние устройства

    поиск нечувствительности к регистру в строковом массиве swift 3

    Откройте контроллер просмотра сафари из табличного представления на iOS 9 и откройте в сафари на iOS 8 или 7

    Отладка консоли iOS 6 исчезла?

    Xcode 4.5 – невозможно установить файлы разработчика .ipa через iTunes

    ios SKStoreProductViewController loadProductWithParameters: процесс завершения блокировки

    Как вы получаете фильтр Core Image, например CILinearGradient?

    Анализ JSON на основе потока на Swift

    Как запретить отклонение UIPopoverPresentationController при нажатии за пределы popover?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.