2014-12-28 69 views
-3

我正在進一步研究UIView的方法'touchesBegan',並看到此方法帶來了兩個參數,即'(NSSet *) touches''(UIEvent *) event'訪問NSSet中的所有值

關於參數'(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?

+1

你有沒有費心去看看NSSet的文檔? –

+0

@HotLicks初學者的文檔非常難以理解,並且沒有太多例子,因爲文檔不是'如何做',這在初學者中很困難。 – user3781174

+0

在Objective-C中編碼的人不應該是「初學者」。 –

回答

2

您已經擁有一個UITouch對象的NSSet,並且您已經記錄了UITouch對象的屬性。所以羯羊存在設定一個UITouch對象或許多你可能會快速通過他們這樣的枚舉:

for (UITouch *touchObject in touches){ 


UIWindow *theWindow = touchObject.window; 
NSArray *recognizers = touchObject.gestureRecognizers; 
// etc... 

} 

所以你去,如果你願意,你可以很容易地重新組織該數據,但很難爲我明白你爲什麼希望這樣做,因爲它看起來很像UIKit組織得很好。祝你好運