UIView.center = UIImageView.center但图像视图似乎不在横向中心

Tea*_*App 20 objective-c alignment uiview ipad ios

我正在申请iPad,只支持横向模式.我有一个UIView,后来我动态添加UIImageView为子视图.但是我的目标是在图像的中心添加图像UIView.所以我使用了这段代码,

[imageView setCenter:dynamicMainView.center];
Run Code Online (Sandbox Code Playgroud)

其中UIImageViewimageView 是(明显:))和dynamicMainView UIView,但最终的结果讲述似乎在中心,

视觉表现

在此输入图像描述


在UIView中添加UIImageView的完整方法代码是,

-(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];
}
Run Code Online (Sandbox Code Playgroud)

以上日志值是,

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
Run Code Online (Sandbox Code Playgroud)

关于它为什么不在中心添加的任何线索?难道我做错了什么?


对于未来的观看者来说,绅士是:

[imageView setCenter:CGPointMake(CGRectGetMidX([dynamicMainView bounds]), CGRectGetMidY([dynamicMainView bounds]))];
Run Code Online (Sandbox Code Playgroud)

jrt*_*ton 20

center视图的表示在它的上海华的坐标系.因此,您将图像视图置于错误的坐标系中.(动态视图的超级视图而不是动态视图)

要在视图B中居中视图A,中心视点A必须是bounds视图B 的矩形的中心.您可以使用(从内存!)CGRectGetMidXCGRectGetMidY.