2011-08-10 29 views
0

我創建的UIView的一個子類子,我試圖擴大並從其M檔中移動的看法,但我遇到了一些問題。當我用命令: self.frame = CGRectMake(self.frame.origin.x-10,self.frame.origin.y-10,self.frame.size.width/2,self.frame.size.height/2);對象移動的位置,但不調整大小(視圖僅包含少數的UIImageViews)。在子類的xib文件中,我選中了剪輯子視圖和Autoresize子視圖選項,但都沒有出現。任何關於爲什麼視圖不會使用這個命令調整大小以及如何調整大小的想法。縮放歸類的UIView

+1

您的看法不是你重置幀之後,改變大小?你100%肯定嗎?嘗試改變它的背景顏色,以便在屏幕上看到它。或者你的子視圖應該改變大小還是移動? – MishieMoo

+0

你的子視圖有'autoresizingMask'嗎?難道你不想用一個'transform'來擴展你的UIView,而不是改變它的框架嗎? – Cyrille

回答

1

調整您的看法是不一樣的進行縮放。把你的看法看作一個相框。上面的操作是移動框架,並移動右下角(縮短框架的木條) - 但這不會自動縮小圖片。

有調整與子視圖的視圖的四種方式:

  1. 讓上海華剪輯子視圖(通過設置view.clipsToBounds = YES):子視圖不要調整或重新佈局,但只在裏面的面積展示幀。
  2. 讓上海華不夾它的子視圖(通過設置view.clipsToBounds = NO):改變上海華大小不會對任何子視圖的視覺效果,它們也顯示在框架的外部。
  3. 給子視圖autoresizingMask S:子視圖不會改變大小,但他們重新佈局根據自己的自動尺寸調整掩碼(例如,一個子視圖可以始終保持10 PX斷幀的右下角,或可能總是跨越完全)請注意,這不一定會自動縮放子視圖內容。相應地設置subview.contentMode
  4. 縮放超級視圖:通過設置superview.transform = CGAffineTransformScale(superview.transform, 0.5, 0.5),縮小超級視圖及其所有子視圖(您基本上都會縮小)。請注意,這使得superview.frame未定義,這意味着你不應該再使用它了。它也可能使事情變得模糊。

你也可以「手動」改變所有的子視圖,但這種做法有損於具有良好視圖層次結構的目的。

正如MishieMoo說,臨時設置的上海華盈的backgroundColor的東西可見。這很可能會告訴你,你的觀點確實在改變。