选择行只会点击复选框而不是行本身

时间:2016-07-12 14:45:00

标签: ios uitableview

无法获得该行为 - 必须通过点击UITableView编辑模式中的默认复选框来选择行,并允许多个选择。 当点击其他地方的行时 - 行未被选中,但另一个细节屏幕将打开。

WORKOROUND(Xamarin C#):

    // MyTableCell : UITableViewCell

    public bool IsCheckBoxTapped;

    public override void TouchesBegan(NSSet touches, UIEvent evt)
    {
        var touch = touches.FirstOrDefault() as UITouch;
        var point = touch?.LocationInView(this) ?? new CGPoint();

        var r = CGRect.FromLTRB(0, 0, 60, Frame.Height);
        IsCheckBoxTapped = r.Contains(point);

        base.TouchesBegan(touches, evt);
    }

1 个答案:

答案 0 :(得分:0)

我的建议是你在自定义单元格类中覆盖touches begin方法,使得如果用户触摸包含复选框的区域中的单元格,它将执行与触及该区域的区域不同的操作。不要按住复选框。类似于我下面的内容可能有用。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    var point:CGPoint = CGPoint()

    if let touch = touches.first {
        point = touch.locationInView(self)
    }

    if(checkBox.frame.contains(point)) {
        super.touchesBegan(touches, withEvent: event)
        //or however you would like to select the row
    }
    else {
        //present your details screen
    }
}