gpt4 book ai didi

ios - 将 Storyboard 中的 UISwipeGuesture 连接到 TableView Controller

转载 作者:行者123 更新时间:2023-11-28 05:28:34 25 4
gpt4 key购买 nike

是否有必要编写一个完整的函数来获得滑动手势来选择索引行?通常对于 TableView ,您将使用 indexPathForSelectedRow。但是,如果您不想让用户实际按下单元格然后滑动以获取正确的索引对象以在详细 View 中加载,是否有一个可用的类, Storyboard 中的连接,或者做你需要自己写吗?

Currently the correct objects load when a row is selected and then swiped but if I just swipe I get the default value I set instead of the what would appear for indexPathForSelectedRow.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

var upcoming: AnswerTable = segue.destinationViewController as! AnswerTable

if (segue.identifier == "loadAnswerTableView") {

let indexPath = self.tableView.indexPathForSelectedRow()

println(indexPath)

let obj: PFObject? = self.objectAtIndexPath(indexPath)

upcoming.parseObject = obj

self.tableView.deselectRowAtIndexPath(indexPath!, animated: true)

}

prepareForSegue 函数由在 Interface Builder(Storyboard)中实现的 UISwipeGesture 触发。因为该函数从 let indexPath = self.tableView.indexPathForSelectedRow() 获取要传递到详细 View 的数据,所以用户必须通过触摸表格单元格并选择它来物理选择单元格。我希望 UI 识别出我希望将被滑过的单元格中的数据传递给详细 View Controller ,而不是用户必须这样做。

我确信这可以通过编程方式完成,但我还不知道正确的实现方式。但在进入并以编程方式执行之前,我想知道是否有一种方法可以通过 Storyboard 将滑动手势分配给 prepareForSegue 方法,或者 UIKit 中是否有一个类可以处理这个问题。

最佳答案

这里是我将如何实现它的建议。我不会将手势附加到 TableView,而是将其附加到 UITableViewCell,并在 cellForRowAtIndexPath 函数中将 UITableViewCell 的标签设置为该行号。并在滑动手势的委托(delegate)/处理程序中检查哪一行启动了滑动并执行适当的操作。像这样的东西。它是 Objective C,但如果您想要基于 SWIFT 的答案,请告诉我,概念是相同的。

-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Create the UITableViewCell //
cell.contentView.tag = indexPath.row;
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSwipe:)];
[gestureRecognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
[cell.contentView addGestureRecognizer:swipeGesture];
}

在你的处理函数中

-(void)handleSwipe:(id)sender
{
UIView *senderView = (UIView *)sender;
//indexSwiped will have the row which was swiped and you
//can process what to do in the detail view accordingly
NSInteger indexSwiped = senderView.tag;
}

关于ios - 将 Storyboard 中的 UISwipeGuesture 连接到 TableView Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29979279/

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