我正在进一步研究UIView的方法'touchesBegan'
,并看到这个方法带来了两个参数'(NSSet *) touches'
和'(UIEvent *) event'
。
关于参数'(NSSet *) touches'
,我决定在控制台上显示它存储的内容,并看到它显示以下值:
<UITouch: 0x7ae71890> phase: Began tap count: 1 window: <UIWindow: 0x7ae71ca0; frame = (0 0; 320 480); gestureRecognizers = <NSArray: 0x7ae72820>; layer = <UIWindowLayer: 0x7ae71e90>> view: <UIView: 0x7cb89bd0; frame = (0 0; 320 480); autoresize = W+H; layer = <CALayer: 0x7cb70680>> location in window: {82.5, 263} previous location in window: {82.5, 263} location in view: {82.5, 263} previous location in view: {82.5, 263}
)}
他显示'框架','窗口','以前在视图中的位置','点按次数' ...现在我如何单独访问所有这些值,或者将它放在NSDictionary中?
答案 0 :(得分:2)
您已经有一个UITouch对象的NSSet,并且您已在UITouch对象上记录了这些属性。所以在集合中有一个UITouch对象,或许你可以用这样的东西快速枚举它们:
for (UITouch *touchObject in touches){
UIWindow *theWindow = touchObject.window;
NSArray *recognizers = touchObject.gestureRecognizers;
// etc...
}
所以,如果你愿意的话,你可以很容易地重新组织这些数据,但我很难理解你为什么要这样做,因为UIKit看起来非常有条理。祝你好运