Re: [問題] 物件之間的溝通,interface?
※ 引述《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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章