Вопрос по uikit, objective-c, uiview, iphone, ipad – Цвет фона UIView влияет на прикосновения в iOS 5

3

У меня был пользовательский вид с подклассами сенсорных ответов, который работал в iOS 4. В iOS 5 эти касания вообще не реагировали, если касаться нижнего края представления.if цвет фона представления был установлен наclearColor.

Я не смог отследить это, но кто-нибудь знает, изменила ли iOS 5 способ, которым представления реагируют на прикосновения в зависимости от прозрачного фона?

Я не могу сделать никаких изменений в коде, кроме как установить цвет фона на любой непрозрачный цвет, какorangeColor и мнение полностью отвечает.

Обратите внимание, что проблема не затрагивает касания в других местах представления; только вдоль нижнего края, где-нибудь ниже последнего подпредставления, добавленного к представлению; предположительно, чистый фон обрабатывается так, как будто представление не существует ради прикосновений при взгляде на область представления, которая не имеет содержимого. Измените цвет, у представления есть "содержание" и штрихи работают!

Ваш Ответ

2   ответа
5

чем установка частичной непрозрачности для фона, вы можете установить представление.opaque собственность наNO а затем добавить пустойdrawRect: метод. (Проверено и работает на iOS8, бета-версия 4.)

Это отличное решение, которое работает в большинстве сценариев. Работает у меня в iOS 7.1.2 & amp; iOS 8.1.3.
Это также приводит к тому, что компоновка вашего вида использует астрономический объем памяти.
12

[UIColor clearColor]попробуйте использовать это:

[view setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.1]];

NOTE: AUIView не реагирует на сенсорные события, когдаalpha что-нибудь ниже0.1. [UIColor clearColor] устанавливаетalpha в0.0Таким образом, вы не получите сенсорные события. Следуя описанному выше методу, вы можете получать сенсорные события на прозрачном экране.

Я знаю, установите альфа на UIColor, от моего опубликованного ответа до 0,1. Я не имею в виду альфа на самом представлении.
Прикосновения игнорируются, когда значение альфа меньше0.1, Попробуйте установить его0.1, Если это сработает, я отредактирую свой ответ, чтобы отразить это
мой взгляд имеет альфа 1,0; он виден и его подпредставления видны, но цвет фонаclearColor johnbakers
По крайней мере в iOS 8 кажется, что сенсорные события запускаются с альфа-значением, установленным на 0,01, и больше не должно быть 0,1.
хорошее предложение, но не имеет значения johnbakers

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