自定义UITableViewCell数据捕获

时间:2013-11-21 04:09:59

标签: ios objective-c uitableview

我创建了自定义UITableViewCell并添加了一个标签来显示产品名称并根据要求选择数量我创建了自定义视图,带有2个滚动视图以选择从00到99的数字(每个滚动视图显示0到9个数字,所以我已创建标签并添加到scrollview)。现在,用户可以滚动以设置tableview中显示的每个产品的首选数量。

我的疑问是如何在更新数量按钮的基础上存储用户为每个产品选择的数量。

2 个答案:

答案 0 :(得分:1)

为此,您必须实现滚动视图委托方法 scrollViewDidEndDragging 。在此方法中,您将获得滚动滚动结束状态,您可以跟踪当前选定的数字。

但我的建议是为此目的使用自定义数字选择器。你可以在这里看到一些例子。

https://www.cocoacontrols.com/controls/slnumberpickerview

http://code4app.net/ios/Dial-Controller/4f86e54806f6e71016000000

答案 1 :(得分:0)

这很简单,不用担心整个表。只检查一行。休息将很容易完成。我假设你有UITableView和UITableviewCell的子类(但是,这不是必需的,但是使它可以恢复的良好做法)。

首先,请为您的UITableView代表:

-(void)didSelectQuantity:(NSUInteger)quantity forIndexPath:(NSIndexpath)indexPath.

其次,封装项目信息。

// Assume class NSProduct with property itemName,quantity,etc..
In your controller 
@property(nonatomic,retain)NSArray *productArray /*Array of NSProduct*/;

第三,在你的UITableviewCell中实现这个logic但是 scrollview(我建议在这里使用pickerview或UITableView来轻松获取选定的值。否则你需要自己的逻辑来计算滚动结束时所选的值)

- (void)valueSelected:(id)sender
{
    CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
    if (indexPath != nil)
    {
       // call delegate.
    }
}

Apple有一个很好的例子来说明如何使用tableview中的pickerview来解决这些问题。 check here