簡體   English   中英

將視圖添加為UIImageView的子視圖時將其翻轉

[英]View is flipped when being added as subview of UIImageView

我正在通過drawRectUIView上繪制一個三角形,然后將該UIView添加為主視圖( UIView )的子視圖。

非常簡單,它顯示。

當我使用UIImageView時,會發生問題。

UIView (主視圖)將UIImageView添加為子視圖,並通過此UIImageViewUIView添加為子視圖,在該子視圖上繪制了三角形。

層次:

[UIView] (main view; i.e. self.view)
      |
    [UIImageView] 
            |
         [UIView] (onto which drawing is)

查看作品:

self.view = [[UIView alloc] initWithFrame:(CGRect){{0.0, 0.0}, 320.0, 480.0}];
imageView = [[UIImageView alloc] initWithImage:...];

[self.view addSubview:imageView];

viewWithTriangle = [[MyView alloc] initWithFrame:imageView.bounds];
[imageView addSubview:viewWithTriangle];

三角形垂直翻轉。 最簡單的解決方法是再次垂直翻轉UIView ,但是我想知道為什么將UIView添加為UIImageView子視圖會導致此翻轉。

如果我將圖形直接添加為主視圖的子視圖,則不會發生這種情況。

UIImage的方向有時可能會滲入UIImageView的坐標系中。 UIImageView經過高度優化,可以將UIImage繪制到屏幕上。 UIImageView甚至不調用drawRect ,例如

使用斷點,當您看到此行為時,請檢查imageView.image.imageOrientation的值。 它等於UIImageOrientationUp以外的其他UIImageOrientationUp嗎? 如果是這樣,您可能需要處理以下事實:UIImageView將某些屬性“轉換”為UIImage的“人類首選”坐標系,而不是圖像數據的實際編碼系統。

我沒有親自測試此代碼或方法,因為我沒有在UIImageView上添加子視圖,但這可能是一個問題。 請讓我們知道這是否有助於診斷-我很好奇!

暫無
暫無

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

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