Раздражающая белая рамка при повороте вида в iPad - PullRequest
7 голосов
/ 06 мая 2010

При повороте вида из UIInterfaceOrientationPortrait в UIInterfaceOrientationPortraitUpsideDown на симуляторе iPad вдоль белой стороны видна белая граница (см. диаграмму в левом нижнем углу изображения). Белая рамка показана только с одной стороны, но не с противоположной стороны. Как я могу предотвратить (скрыть) это? Спасибо!

Ответы [ 3 ]

16 голосов
/ 06 мая 2010

Это предположение:

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

Чтобы исследовать этот случай, вы можете использовать недокументированный метод [UIView recursiveDescription], чтобы быстро взглянуть на вашу иерархию представлений (нет необходимости отправлять код с этим методом, это просто для отладки). Как только вы узнаете, какие виды находятся внизу, вы можете распечатать их backgroundColors или просто установить для них все [UIColor clearColor].

Кроме того, я предполагаю, что вы уже знаете это, но может быть полезно установить window.backgroundColor = [UIColor clearColor] в начале вашего кода!

0 голосов
/ 15 августа 2011

Вы также можете установить цвет фона на ноль. Из документации UIView для backgroundColor:

Значением по умолчанию является ноль, что приводит к прозрачному фону цвет.

UIWindow наследует от UIView, так что это тоже работает. Вероятно, хорошая идея использовать nil, если [UIColor clearColor] не всегда лучший способ сделать это.

Самое забавное, у меня есть проект без перьев, поэтому я создаю UIWindow в коде, но цвет фона был белым, прежде чем я установил его на ноль. цвет фона по умолчанию для программно созданного UIWindow - белый?

0 голосов
/ 14 мая 2010

У меня была такая же проблема. Я видел, что в Интерфейсном Разработчике автоматическое изменение размера для представления не могло быть включено. Я удалил .xib и заново создал его, убедившись, что при создании файла для продукта было установлено «ipad» (добавьте новый файл в xcode).

...