質問編集履歴
1
途中までは自己解決したので修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,10 +1,27 @@
|
|
1
1
|
現在Viewの中にtextFieldとtextViewがあります
|
2
2
|
textViewがタップされたらViewをスクロールさせたいのですが
|
3
3
|
|
4
|
-
今のコードでは
|
4
|
+
今のコードでは1度textViewがタッチされると以降textFieldでもviewがスクロールしてしまします。
|
5
|
+
原因は
|
6
|
+
```swift
|
7
|
+
func isTouch(touches: Set<UITouch>, view:UIView) -> Bool{
|
5
|
-
|
8
|
+
for touch: AnyObject in touches {
|
9
|
+
let t: UITouch = touch as! UITouch
|
6
|
-
|
10
|
+
if t.view?.tag == view.tag {
|
11
|
+
return true
|
12
|
+
} else {
|
13
|
+
return false
|
14
|
+
}
|
15
|
+
}
|
16
|
+
return false
|
17
|
+
}
|
18
|
+
```
|
7
19
|
|
20
|
+
ここででviewがスクロールする処理が1度解除されると以降textFieldにも適用されてしまうと考えていますが対処の仕方が分からない状態です
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
8
25
|
```swift
|
9
26
|
import UIKit
|
10
27
|
|
@@ -18,6 +35,8 @@
|
|
18
35
|
super.viewDidLoad()
|
19
36
|
textView.delegate = self
|
20
37
|
textField.delegate = self
|
38
|
+
textView.tag = 123
|
39
|
+
|
21
40
|
}
|
22
41
|
|
23
42
|
|
@@ -64,9 +83,30 @@
|
|
64
83
|
self.view.transform = CGAffineTransform.identity
|
65
84
|
}
|
66
85
|
}
|
86
|
+
|
87
|
+
|
67
88
|
|
68
89
|
|
90
|
+
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
|
69
|
-
|
91
|
+
if isTouch(touches: touches, view: textView) {
|
70
|
-
|
92
|
+
self.configureObserver()
|
93
|
+
|
94
|
+
|
95
|
+
}
|
71
96
|
}
|
97
|
+
|
98
|
+
func isTouch(touches: Set<UITouch>, view:UIView) -> Bool{
|
99
|
+
for touch: AnyObject in touches {
|
100
|
+
let t: UITouch = touch as! UITouch
|
101
|
+
if t.view?.tag == view.tag {
|
102
|
+
return true
|
103
|
+
} else {
|
104
|
+
return false
|
105
|
+
}
|
106
|
+
}
|
107
|
+
return false
|
108
|
+
}
|
109
|
+
|
110
|
+
|
111
|
+
|
72
112
|
```
|