2012-10-20 178 views
3

我正在使用UIStepper更改UITextField中顯示的值,並且可編輯選項輸入的值爲UITextFieldUIStepper吞嚥觸摸

一切工作正常,但有一個不期望的行爲:UITextField只能編輯按對象本身的上半部分,因爲在下半部分的觸摸由UIStepper吞噬。

我在找一個答案,但我還沒有找到任何答案。我有一些暗示。

UIStepper具有2個按鈕和1 ImageView,並且在整個ImageView(不可見或可編輯)中檢測到觸摸。

任何想法?

enter image description here

回答

0

爲了解決這個問題最有可能需要子類。您可以在UIStepper子類中重寫pointInside:withEvent:嚴格步進的範圍內返回NO,除非:

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { 
    return CGRectContainsPoint(self.bounds, point); 
} 
0

一種選擇是把兩個步進和文本字段覆蓋-hitTest:withEvent:,使得查詢的容器視圖中在查詢步進器之前的文本字段。如果文本字段說明它已被擊中,則返回一個指向文本字段的指針。如果沒有,檢查步進器,並返回,如果它說它被擊中。

控件有時會假裝比它們更大,以至於它們更容易觸摸。使用前面的技術應該讓您儘可能多地保持步進器的可觸摸區域,而不妨礙使用文本視圖。