2014-10-16 4 views
0

У меня есть некоторые разделительные линии между вещами.UIView на 1 пиксель шире, чем его рамка (iPhone 6)

UIView * lineView = [[UIView alloc] initWithFrame: CGRectMake(x, 0, 1, h)]; 
lineView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.5f]; 
[self addSubview:lineView]; 

На iPhone 4S, 5 и iPad mini все они имеют 1 пиксель (2 с сетчаткой) в ширину. На iPhone 6 (хотя в симуляторе) пятая линия имеет ширину 3 пикселя, и я понятия не имею, почему. (Я увеличить с реальным телефоном кулачком)

Кадры показывают

{{ 85, 0}, {1, 32}} 
{{184, 0}, {1, 32}} 
{{284, 0}, {1, 32}} 
{{383, 0}, {1, 32}} 
{{483, 0}, {1, 32}} // this is 1.5 wide (3 pixels) 

Теперь, если я сделать их 2 пт широкий, первый и второй являются 4 пикс (iPhone 6), но третий, четвёртый и пятый являются 5 пикселей в ширину.

Что может быть растягивать эти UIViews?

+3

Похоже, ваше приложение не поддерживает iPhone 6, поэтому ваше приложение масштабируется. – rmaddy

+0

для этого теста/проблема только iPhone 6, нет плюс – NikkyD

+1

Добавьте изображения запуска iPhone 6, и ваша проблема исчезнет. – rmaddy

ответ

2

Наиболее вероятной проблемой является то, что ваше приложение масштабируется на iPhone 6 (и 6+). Приложения, которые не полностью поддерживают размеры экрана iPhone 6/6 +, будут масштабироваться iOS, чтобы заполнить экран. Конечным результатом этого масштабирования является то, что строки и столбцы пикселей дублируются в процессе масштабирования.

Лучшим решением является добавление полной поддержки для iPhone 6 и 6+ путем добавления соответствующих изображений запуска и/или нового файла экрана запуска «iOS 8». Конечно, вы должны быть уверены, что ваше приложение разработано, чтобы использовать преимущества больших экранов.

+0

исправил проблему, сложная одна – NikkyD

Смежные вопросы