gpt4 book ai didi

objective-c - UIView.center = UIImageView.center 但 ImageView 似乎不在横向中心

转载 作者:IT王子 更新时间:2023-10-29 08:06:11 27 4
gpt4 key购买 nike

我正在为 iPad 制作应用程序,仅支持横向模式。我有一个 UIView,后来我动态添加 UIImageView 作为 subview 。然而,我的目标是在 UIView 的中心添加图像。所以我使用了这段代码,

[imageView setCenter:dynamicMainView.center];

其中 imageView 是 UIImageView(很明显 :))而 dynamicMainView 是 UIView,但是最终结果似乎在中间,

视觉呈现

enter image description here


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

上面的日志值是,

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

关于为什么它没有添加到中心的任何线索?我做错了什么吗?


对于 future 的观众来说,答案是:

[imageView setCenter:CGPointMake(CGRectGetMidX([dynamicMainView bounds]), CGRectGetMidY([dynamicMainView bounds]))];

最佳答案

View 的中心 表示在它的父 View 的坐标系中。因此,您将 ImageView 置于错误的坐标系中。 (动态 View 的父 View 相对于动态 View )

为了使 View A 在 View B 中居中, View A 的中心点必须是 View B 的 bounds 矩形的中心。您可以使用(从内存中!) CGRectGetMidXCGRectGetMidY

关于objective-c - UIView.center = UIImageView.center 但 ImageView 似乎不在横向中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8588248/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com