2009-07-14 125 views
0

我想創建一個存儲在筆尖的自定義UIView,以便我可以使用Interface Builder對其進行定位。iPhone自定義UIView邊界

我創建了一個名爲RippleView的類來擴展UIView。我想使用Interface Builder將此視圖定位爲子視圖。爲此,我將一個新視圖拖入Interface Builder中的現有視圖中,併爲其提供了RippleView類標識。然後我將我的RippleView插座連接到我剛剛創建的視圖。

在RippleView類中,我實現了initWithCoder,除了調用[super initWithCoder ...]之外,它沒有執行任何其他操作。在awakeFromNib中,我繼續並初始化我的代碼。

現在,由於某種原因,如果我嘗試檢查在awakeFromNib中的RippleView的邊界,我得到荒謬的值(0寬度和1081171968高度)。這些邊界在drawRect中不會改變,所以我不認爲這是視圖未被初始化的問題。我在touchesMoved事件處理函數中獲得了類似的值。

當我以編程方式創建子視圖(initWithFrame)時,我沒有任何問題。什麼可能導致框架邊界出現故障?

回答

2

解決!這個問題與代碼無關。 UIView邊界是浮動,我打印它們爲整數。正是這樣的事情將程序員與退路分開:p

0

你可以發佈你的initWithCoder:實現嗎?如果你沒有設置self值,或者你的initWithCoder拼寫錯誤,你可能會遇到這些問題。你有沒有嘗試在initWithCoder中設置一個斷點:確保它被調用?