我正在使用UIStepper
更改UITextField
中顯示的值,並且可編輯選項輸入的值爲UITextField
。UIStepper吞嚥觸摸
一切工作正常,但有一個不期望的行爲:UITextField
只能編輯按對象本身的上半部分,因爲在下半部分的觸摸由UIStepper
吞噬。
我在找一個答案,但我還沒有找到任何答案。我有一些暗示。
UIStepper
具有2個按鈕和1 ImageView
,並且在整個ImageView
(不可見或可編輯)中檢測到觸摸。
任何想法?
我正在使用UIStepper
更改UITextField
中顯示的值,並且可編輯選項輸入的值爲UITextField
。UIStepper吞嚥觸摸
一切工作正常,但有一個不期望的行爲:UITextField
只能編輯按對象本身的上半部分,因爲在下半部分的觸摸由UIStepper
吞噬。
我在找一個答案,但我還沒有找到任何答案。我有一些暗示。
UIStepper
具有2個按鈕和1 ImageView
,並且在整個ImageView
(不可見或可編輯)中檢測到觸摸。
任何想法?
爲了解決這個問題最有可能需要子類。您可以在UIStepper
子類中重寫pointInside:withEvent:
嚴格步進的範圍內返回NO
,除非:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
return CGRectContainsPoint(self.bounds, point);
}
一種選擇是把兩個步進和文本字段覆蓋-hitTest:withEvent:
,使得查詢的容器視圖中在查詢步進器之前的文本字段。如果文本字段說明它已被擊中,則返回一個指向文本字段的指針。如果沒有,檢查步進器,並返回,如果它說它被擊中。
控件有時會假裝比它們更大,以至於它們更容易觸摸。使用前面的技術應該讓您儘可能多地保持步進器的可觸摸區域,而不妨礙使用文本視圖。