Если название ничего не говорит вам, вот что я узнал недавно и мне интересно: В моем приложении у меня есть UIScrollView с кнопками в нем. Все эти кнопки имеют один подъярус - экземпляр UILabel. Иногда возникает определенное событие, которое меняет текст в ярлыках, и мне также необходимо изменить кадр обеих меток и кнопок, чтобы можно было отобразить весь текст (он не будет усечен). Поэтому я просто захватил первое подразделение кнопки и проверил, сколько пространства нуждается в его тексте.Почему UIScrollView добавляет subviews UIImageView в свои подпрограммы при прокрутке
Это вызвало сбой, если это событие произошло во время прокрутки. Оказывается, что помимо метки каждая кнопка имела другое подзапрос, который был экземпляром UIImageView. Сначала я подумал, что во время прокрутки UIScrollView берет «скриншоты» своих подзонов и вроде ставит изображения сверху, так что анимация прокрутки несколько дешевле с точки зрения производительности. Однако эта логика является ошибочной, поскольку UIImageView был подвью под индексом 0, поэтому он был помещен ниже моих ярлыков.
Кто-нибудь знает, почему это происходит? Что инженеры Apple пытались достичь с помощью этого странного механика?
Обратите внимание, что это может произойти только для кнопок. Кроме того, я проверил метки, и у них не было никаких подзонов.
Мои кнопки не имеют никаких фоновых изображений и прозрачны. Кроме того, это происходит только при прокрутке прокрутки, в противном случае единственным подвью является метка. Может быть, что-то с этим связано. – johnyu
Просто отредактировал мой ответ, чтобы дать вам предложение о том, чтобы вы только вытащили ярлык, чтобы вы не попали в объект, у которого на самом деле нет рамки. – sfeuerstein
Я уже исправил это. Я просто задаю здесь вопрос о том, почему появляется изображение. Чисто из любопытства. – johnyu