簡體   English   中英

UIView.center = UIImageView.center但圖像視圖似乎不在橫向中心

[英]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矩形的中心。您可以使用(來自內存!) CGRectGetMidXCGRectGetMidY

你應該檢查圖像的大小。 圖像的幀可能不是UIImageView的幀。 將UIImageView的背景顏色設置為[UIColor redColor]和clipToBounds為true,看看會發生什么。 如果有可見的紅色部分,則問題出在imageView對象的contentMode屬性上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM