iPad Pixel Удвоение? - PullRequest
       7

iPad Pixel Удвоение?

1 голос
/ 03 февраля 2011

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

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

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

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;
}

1 Ответ

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

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

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

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

Похоже, проблема заключается в фрейме , который вы передаете. Если ваш метод init проходит фрейм (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];
...