【发布时间】:2016-08-02 04:29:52
【问题描述】:
大家好,我目前在这个错误上迷路了,这是我第一次使用 IOS 和 Swift,虽然我已经能够使用 1 个手势识别器来查看视图,但我需要为任何对象设置多个手势识别器(component.control 有AnyObject 类型),当我运行它并按下按钮(作为 AnyObject 类型传递)时,我在 appDelegate.swift 文件中得到了这个错误
line 1: class AppDelegate: UIResponder, UIApplicationDelegate{ //Thread 1: EXC_BAD_ACCESS (code=1,address=0x1)
我们将不胜感激!谢谢!
这就是我所拥有的 覆盖 func viewDidLoad() { super.viewDidLoad()
//gestures
let gesture_tap = UITapGestureRecognizer(target: self, action: #selector(ComponentDetailViewController.ctrl_tapped(_:event:)));
let gesture_pinch = UIPinchGestureRecognizer(target: self, action: #selector(ComponentDetailViewController.ctrl_pinched(_:event:)));
let gesture_swipe = UISwipeGestureRecognizer(target:self, action: #selector(ComponentDetailViewController.ctrl_swiped(_:event:)));
let gesture_longPress = UILongPressGestureRecognizer(target: self, action: #selector(ComponentDetailViewController.ctrl_longPressed(_:event:)));
let gesture_rotate = UIRotationGestureRecognizer(target:self,action: #selector(ComponentDetailViewController.ctrl_rotated(_:event:)));
let gesture_pan = UIPanGestureRecognizer(target:self, action: #selector(ComponentDetailViewController.ctrl_panned(_:event:)));
let ctrl = component?.control;
ctrl!.addGestureRecognizer(gesture_tap);
ctrl!.addGestureRecognizer(gesture_pinch);
ctrl!.addGestureRecognizer(gesture_swipe);
ctrl!.addGestureRecognizer(gesture_longPress);
ctrl!.addGestureRecognizer(gesture_rotate);
ctrl!.addGestureRecognizer(gesture_pan);
gesture_tap.delegate = self;
gesture_pinch.delegate = self;
gesture_swipe.delegate = self;
gesture_longPress.delegate = self;
gesture_rotate.delegate = self;
gesture_pan.delegate = self;
component?.control = ctrl as? UIView;
//component?.control!.userInteractionEnabled = true;
//component?.control!.addGestureRecognizer(tap);
viewDisplayComponent.addSubview((component?.control)! as! UIView);
}
//Gesture methods
func ctrl_tapped(ctrl: AnyObject, event:UIEvent){
setMessage("TO_tapped");
}
func ctrl_pinched(ctrl: AnyObject, event:UIEvent){
setMessage("TO_pinchedWithArgs")
}
func ctrl_swiped(ctrl: AnyObject, event:UIEvent){
setMessage("TO_swipedWithArgs");
}
func ctrl_longPressed(ctrl: AnyObject, event:UIEvent){
setMessage("TO_longPressedWithArgs");
}
func ctrl_rotated(ctrl: AnyObject, event:UIEvent){
//logTextView.text += "Rotated";
}
func ctrl_panned(ctrl: AnyObject, event:UIEvent){
setMessage("TO_pannedWithArgs");
}
【问题讨论】:
标签: ios swift uigesturerecognizer