作者zonble (zonble)
看板MacDev
标题Re: [问题] 物件之间的沟通,interface?
时间Fri Jan 15 04:10:20 2010
※ 引述《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
1F:推 Gsus:太感谢了!!! 01/15 05:04
※ 编辑: zonble 来自: 114.44.187.150 (01/15 08:26)