[英]UIView.center = UIImageView.center but image view doesn't seem to be in centre in landscape
我正在申請iPad,只支持橫向模式。 我有一個UIView
,后來我動態添加UIImageView
作為子視圖。 但是我的目標是在UIView
中心添加圖像。 所以我使用了這段代碼,
[imageView setCenter:dynamicMainView.center];
其中imageView是UIImageView
(明顯:))和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];
}
以上日志值是,
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]))];
視圖的center
以超視圖的坐標系表示。 因此,您將圖像視圖置於錯誤的坐標系中。 (動態視圖的超級視圖而不是動態視圖)
要在視圖B中居中視圖A,中心視點A必須是視圖B的bounds
矩形的中心。您可以使用(來自內存!) CGRectGetMidX
和CGRectGetMidY
。
你應該檢查圖像的大小。 圖像的幀可能不是UIImageView的幀。 將UIImageView的背景顏色設置為[UIColor redColor]
和clipToBounds為true,看看會發生什么。 如果有可見的紅色部分,則問題出在imageView對象的contentMode屬性上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.