gpt4 book ai didi

ios - 添加更多项目时滑动手势不起作用

转载 作者:行者123 更新时间:2023-11-30 14:17:37 25 4
gpt4 key购买 nike

在我的应用程序中,我使用滑动手势,但是当我添加更多项目时,我的应用程序崩溃并且滑动手势不起作用。我不知道该怎么办。在我的 View Controller 中我有

class controller: UIViewController, UITableViewDelegate,  UITableViewDataSource {

var array = [AnyObject]()

var check = false

@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {

super.viewDidLoad()

var rightButton : UIBarButtonItem = UIBarButtonItem(image: UIImage(named: "edit"), style: UIBarButtonItemStyle.Done, target: self, action: "editClicked")

self.editing = !self.editing

rightButton.tintColor = UIColor.whiteColor()

self.navigationItem.rightBarButtonItem = rightButton

var leftButton : UIBarButtonItem = UIBarButtonItem(image: UIImage(named: "settings"), style: UIBarButtonItemStyle.Plain, target: self, action: "settingsClicked")

leftButton.tintColor = UIColor.whiteColor()

self.navigationItem.leftBarButtonItem = leftButton
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return array.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell: CustomCell = tableView.dequeueReusableCellWithIdentifier("Cell") as! CustomCell

let object = array[indexPath.row] as! NSString

cell.editCell(object, delete: check)

cell.button.addTarget(self, action: "deleteClicked", forControlEvents : UIControlEvents.TouchUpInside)

return cell
}

这是我用来添加项目的函数

func addClicked () {

check = true

var alert = UIAlertController(title: "add", message: "", preferredStyle: UIAlertControllerStyle.Alert)

alert.addTextFieldWithConfigurationHandler({ (textField) -> Void in textField.text = ""

})

alert.addAction(UIAlertAction(title: "confirm", style: .Default, handler: { (action) -> Void in

let textField = (alert.textFields![0] as! UITextField).text as String

if textField != "" {

self.array.insert(textField, atIndex: 0)

let indexPath = NSIndexPath(forRow: 0, inSection: 0)

self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
}

}))

alert.addAction(UIAlertAction(title: "cancel", style: .Cancel, handler: {

(ACTION) -> Void in

}))

self.presentViewController(alert, animated: true, completion: nil)

self.tableView.reloadData()
}

class CustomCell: UITableViewCell {

@IBOutlet weak var label: UILabel!

@IBOutlet weak var view: UIView!

@IBOutlet weak var toBuy: UIImageView!

@IBOutlet weak var atHome: UIImageView!

@IBOutlet weak var button: UIButton!

var gesture, check: Bool!

override func awakeFromNib() {
super.awakeFromNib()

var leftSwipe = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipes:"))
var rightSwipe = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipes:"))

leftSwipe.direction = .Left
rightSwipe.direction = .Right

self.addGestureRecognizer(leftSwipe)
self.addGestureRecognizer(rightSwipe)

gesture = false;
check = false
}


func handleSwipes(sender:UISwipeGestureRecognizer) {

if (gesture == false) && (check == true){

if (sender.direction == .Left) {

gesture = true;

var labelPosition = CGPointMake(self.view.frame.origin.x - 55.0, self.view.frame.origin.y);

UIView.animateWithDuration(0.5, animations: {

self.view.frame = CGRectMake( labelPosition.x , labelPosition.y , self.view.frame.size.width, self.view.frame.size.height)

}, completion: { (value: Bool) in

self.gesture = false;

})
}

if (sender.direction == .Right) {

gesture = true;

var viewPosition = CGPointMake(self.view.frame.origin.x + 55.0, self.view.frame.origin.y);

UIView.animateWithDuration(0.5, animations: {

self.view.frame = CGRectMake( viewPosition.x , viewPosition.y , self.view.frame.size.width, self.view.frame.size.height)

}, completion: { (value: Bool) in

self.gesture = false;

})
}

}
}

override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}

最佳答案

我在您的代码中发现 MVC 违规。请将滑动手势处理程序添加到您的 Controller 而不是您的 View (即自定义单元格)。

因此handlesSwipeMethod将移动到“ Controller ”

关于ios - 添加更多项目时滑动手势不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30931355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com