Подтвердить что ты не робот

UIView.center = UIImageView.center, но изображение, похоже, не находится в центре пейзажа

Я делаю приложение для iPad, будет поддерживаться только ландшафтный режим. У меня есть UIView, а затем я динамически добавляю UIImageView в качестве подвью. Однако моя цель - добавить изображения в центр UIView. Поэтому я использовал этот код,

[imageView setCenter:dynamicMainView.center];

где imageView - UIImageView (Очевидный:)) и dynamicMainView UIView. Однако конечный результат доцента, кажется, находится в центре,

Визуальное представление

enter image description here


Полный код метода для добавления UIImageView в UIView,

-(void) addImageIntoMainDynamicView:(UIImage *) image
{
    [self clearImageFromMainDynamicView];//Always clear Dynamic main view before adding new views
    imageView = [[UIImageView alloc] initWithImage:image];  
        if(imageView.bounds.size.width > dynamicMainView.bounds.size.width || imageView.bounds.size.height > dynamicMainView.bounds.size.height)
        {
            [imageView setFrame:[dynamicMainView bounds]];
        }

        [imageView setCenter:dynamicMainView.center];
        NSLog(@"Image : X = %f and Y = %f", imageView.center.x,imageView.center.y );
        NSLog(@"UIView : X = %f and Y = %f", dynamicMainView.center.x,dynamicMainView.center.y );
        [dynamicMainView addSubview:imageView];
    [imageView release];
}

И выше значения журнала,

2011-12-21 21:07:11.850 Map1TestApp[94645:11603] Image : X = 512.000000 and Y = 371.500000
2011-12-21 21:07:11.853 Map1TestApp[94645:11603] UIView : X = 512.000000 and Y = 371.500000

Есть ли подсказки о том, почему он не добавляет в центр? Я что-то делаю неправильно?


ДЛЯ БУДУЩЕГО ПРОСМОТРА АНАЛИЗ БЫЛ:
[imageView setCenter:CGPointMake(CGRectGetMidX([dynamicMainView bounds]), CGRectGetMidY([dynamicMainView bounds]))];
4b9b3361

Ответ 1

center представления выражается в системе координат viewview. Таким образом, вы центрируете изображение в неправильной системе координат. (просмотр динамического представления в противоположность динамическому представлению)

В центре обзора A в виде B, центральная точка зрения A должна быть центром прямоугольника bounds вида B. Вы можете получить это используя (из памяти!) CGRectGetMidX и CGRectGetMidY.

Ответ 2

Вы должны проверить размер изображения. Рамка изображения может не быть рамкой UIImageView. Задайте цвет фона UIImageView примерно так: [UIColor redColor] и clipToBounds - true и посмотрите, что произойдет. Если есть красные части, которые видны, проблема связана с свойством contentMode вашего объекта imageView.