Re: [問題] 物件之間的溝通,interface?

看板MacDev作者 (zonble)時間15年前 (2010/01/15 04:10), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《Gsus (肉元,吉米,助教)》之銘言: : 如果我想在UIImageView中的touchEnd這個event觸發時去改變UILabel的text : 我要怎麼通知我的viewController說我的imageView被touch了好讓 : : ◆ From: 211.75.82.241 : → Gsus:所以說就是controller把自己的reference給view,但是透過 01/15 03:33 : → Gsus:protocol來限制view能操控的權限 01/15 03:34 : → Gsus:非常感謝!! 01/15 03:34 : → zonble:對,但是這邊的 reference 記得不要 retain 01/15 03:55 其實有很多作法: 1. 如果你的 UIImageView 只要處理按下去這樣的單一事件,那麼 ,其實可以直接拿 UIButton 來用,把背景去掉,然後裡頭塞張圖 ,那麼 button 與 image view 外觀上也差不多。 2. 如果有超過一種 touch 事件,在 UIkit 裡頭,也可以用上一種 作法做,因為 UIKit 允許同一個 UIControl 可以有多個 target 與 actionm,可以一直用 addTarget:..forEvent:.. 增加。但是這種時 候,其實就可以考慮規劃 delegate/protocol。 3. 如果會觸發很多不同的事件,又希望很多不同的物件都要處理這個 事件,可以考慮改用 NSNotification 4. 如果 image view 裡頭的 touch 事件改變了 image view 的某些 屬性,也可以考慮用 KVO 做。不過,KVO 還是要搭配 binding 才好用。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.187.150

01/15 05:04, , 1F
太感謝了!!!
01/15 05:04, 1F
※ 編輯: zonble 來自: 114.44.187.150 (01/15 08:26)
文章代碼(AID): #1BJtekl1 (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1BJtekl1 (MacDev)