Рамка UIView больше экрана iPhone - PullRequest
0 голосов
/ 17 февраля 2011

Я сделал новый проект на основе iPhone View в XCode, и я смотрю на сгенерированный xib с именем myAppViewController.xib.В этом xib сгенерированный кадр вида выглядит так: { x = 160, y = 230, w = 320, h = 460 } этот вид должен заполнять весь экран, за исключением строки состояния.Я ожидаю, что рамка вида будет выглядеть следующим образом: { x = 0, y = 0, w = 240, y = 300 } для старых iPhone и { x = 0, y = 0, w = 480, h = 600 } для дисплея сетчатки.Тем не менее, я получаю эти странные значения выше.Может ли кто-нибудь объяснить мне, что здесь происходит, это разрушает мой код рисования в моем другом проекте (область рисования основана на рамке вида).

Ответы [ 3 ]

3 голосов
/ 17 февраля 2011

Отображение Retina фактически не увеличивает размер точки обзора.
Когда Apple представила его, это сделало разницу между точками и пикселями . На дисплее Retina больше пикселей, но столько же точек.
Все в вашем коде, относящемся к UIKit, обычно будет в точках, поэтому никаких изменений там не требуется, вид 100x100 все равно будет такого размера.

Я не совсем понимаю ваш вопрос, но значение фрейма можно изменить с помощью свойства bounds и свойства center ... поэтому проверьте, не изменяете ли вы эти .

2 голосов
/ 17 февраля 2011

Рамки кадров таковы:

CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)

ширина экрана составляет 320 пикселей в ширину и 480 пикселей в высоту. строка состояния 20px. таким образом, прямоугольник, который вы хотели бы получить:

CGRectMake(0,0,320,460)

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

0 голосов
/ 17 февраля 2011

Координаты указаны в точках, а не в пикселях.Система координат составляет 320 х 480, независимо от разрешения экрана.

...