我正在創建一個UIView子類(我稱之爲MarqueeLabel
),該子類在UILabel文本太長時間內以字幕方式動畫顯示子視圖UILabel ivar包含的視圖。將實例變量的setter/getters傳遞給一個類
我希望有一個乾淨的執行,而無需編寫我MarqueeLabel
類只是方法來設置/檢索所有標準的UILabel(文本,字體,顏色等)實例的UILabel伊娃的變量。我找到了一種方法來處理郵件轉發 - 發送到MarqueeLabel
的所有無法識別的方法都傳遞給UILabel ivar。在我的情況下,MarqueeLabel
無法識別的方法是通常與UILabel一起使用的方法。
有一些問題,這種方法雖然:
你必須使用[marqueeLabel setText:@"Label here"]
,而不是marqueeLabel.text
2.編譯器給出了上面這行的警告,這是因爲:
'MarqueeLabel'可能不會響應'-setText:'
我想知道該忽略但會惹惱其他人。
爲了避免這些問題,有沒有什麼辦法可以「提出」一個伊娃的方法,以便他們在使用這個類的時候可以訪問某些東西,同時仍然作用於伊娃爾對象?
謝謝!
注意:我設置它的方式可能不是最好的方法。也許繼承UILabel的子類或類會更好,但我無法理解動畫+裁剪(當文本滾動離開包含UIView並消失時)可以使用這些方法完成。
注2:我知道你可以使用marqueeLabel.subLabel.text
其中subLabel
是子視圖UILabel。這可能是我採取的方向,但也可以看看是否有更好的解決方案!
完全按照我的想法工作,謝謝!我在想``動態`將需要以某種方式使用,但我沒有遇到forUndefinedKey方法,只有forwardInvocation。我想可能你的意思是`[theLabel setValue:value forKey:key];`儘管如此。 – Chuck 2011-02-04 04:56:58