Удвоение пикселей iPad?

Недавно я заметил очень странное поведение в своем приложении. При установке рамки для вида он ведет себя так, как будто исходная точка в два раза больше, чем я печатаю. Никакие другие виды не затрагиваются, а также ширина и высота затронутого вида. Кто-нибудь видел или слышал о чем-то подобном раньше?

РЕДАКТИРОВАТЬ:

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

if ((self = [super initWithFrame:frame])) {
        self.backgroundColor = [UIColor clearColor];
        self.controller = aController;
        self.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
        UIView *centerView = [[UIView alloc] initWithFrame:frame];
        [self addSubview:centerView];
        UIToolbar *navBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, 44)];
        NSMutableArray *array = [[NSMutableArray alloc] init];
        UIBarButtonItem *item = item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:self action:@selector(closeClicked:)];
        [array addObject:item];
        item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
        [array addObject:item];
        item = [[UIBarButtonItem alloc] initWithTitle:@"Title" style:UIBarButtonItemStylePlain target:nil action:nil];
        [array addObject:item];
        item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
        [array addObject:item];
        item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:nil action:nil];
        [array addObject:item];
        [navBar setItems:array];
        [centerView addSubview:navBar];
        centerView.clipsToBounds = YES;
        centerView.opaque = TRUE;
        centerView.alpha = 1.0;
        centerView.backgroundColor = [UIColor whiteColor];
        [self addSubview:centerView];
    }
    return self;
}

person Jumhyn    schedule 03.02.2011    source источник
comment
Я обновил свой ответ ниже после того, как вы разместили код.   -  person Kenny Wyland    schedule 03.02.2011


Ответы (1)


Я уже сталкивался со странными вещами, подобными этому, с xibs. Обычно это вызвано тем, что xib внутренне помечен как iPhone xib, а не как iPad xib. Обычно мне требуется воссоздать xib с нуля.

Это универсальное приложение? Убедитесь, что ваш iPad xib загружается, когда ваш контроллер представления инициализирован.

РЕДАКТИРОВАТЬ после добавления кода:

Проблема заключается в frame, который вы передаете. Если ваш метод инициализации получает кадр (10,10,w,h), то при создании centerView это означает, что он будет в 10,10 в любом его контексте, поэтому, если ваш объемный вид здесь находится в 10,10, а центральный вид находится в 10,10 в пределах окружающего вида, центральный вид будет отображаться в 20,20 в большей области.

Вы захотите создать свой centerView с 0,0 в качестве x, y:

CGRect centerViewFrame = CGRectMake(0, 0, frame.size.width, frame.size.height);
UIView *centerView = [[UIView alloc] centerViewFrame];
person Kenny Wyland    schedule 03.02.2011
comment
Ага. Вот оно. Выяснил это, просматривая мой код около получаса ›.‹ Спасибо! - person Jumhyn; 04.02.2011