How to make a uiactionsheet dismiss when you tap outside eg above it?

后端 未结 10 1192
清酒与你
清酒与你 2020-12-16 00:48

How do i make a uiactionsheet dismiss when you tap outside eg above it? This is for iPhone. Apparently the ipad does this by default (I may be wrong).

10条回答
  •  忘掉有多难
    2020-12-16 01:22

    This does not answer the question exactly, but here is what I do to close the picker when clicking on one of its items (this prevents from adding additional "done" button or "outside click" stuff):

    Implement the viewForRow picker's delegate method in which you create a UILabel and return it:

    - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
    

    On those custom row labels, add a tap action handler:

    UITapGestureRecognizer *tapAction = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleClick:)];
    [label addGestureRecognizer:tapAction];
    

    In the handleClick callback, dismiss the open sheet (the one that contains the picker view):

    [pickerSheet dismissWithClickedButtonIndex:0 animated:TRUE];
    

提交回复
热议问题