UITableView行选择需要长按

时间:2014-01-16 05:25:14

标签: ios objective-c uitableview

我正在使用UITableView来显示行数。当我单击该行时,需要长按才能执行操作。我检查了这个LINK和我的问题一样。但它仍然是问题所在。

// TableView中

    bookshelfTbaleView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 250, 150)];
    bookshelfTbaleView.delaysContentTouches=NO;
    [bookshelfTbaleView setAllowsMultipleSelection:YES];
    bookshelfTbaleView.dataSource=self;
    bookshelfTbaleView.delegate=self;
    bookshelfTbaleView.backgroundColor = [UIColor grayColor];
    [bookshelfView addSubview:bookshelfTbaleView];
    [scrollview addSubview:popUpBookShelfView];

// TableView委托方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row==0)
    {
        [popUpBookShelfView removeFromSuperview];
        bookShelfClick=0;
    }
    if (indexPath.row==1)
    {
        NSLog(@"%@",string);
    }
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 2;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
        return 60;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *kCellID = @"cellID";
    UITableViewCell *cell = [bookshelfTbaleView dequeueReusableCellWithIdentifier:kCellID];
    cell.userInteractionEnabled=YES;
    UIFont *myFont = [UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:18];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellID];
        //cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }
    if (tableView==bookshelfTbaleView) {
        if (indexPath.row==0) {
            cell.textLabel.text=@"All Category";
            cell.textLabel.font  = myFont;
            cell.textLabel.textColor=[UIColor whiteColor];
        }
        if (indexPath.row==1) {
            cell.textLabel.text=@"Downloaded Category";
            cell.textLabel.textColor=[UIColor whiteColor];
            cell.textLabel.font  = myFont;
        }

    }
    return cell;
}

单击TableView中的行时,需要长按才能移动到函数

tableView: didSelectRowAtIndexPath:

这是我在表格视图中获得的值。

enter image description here

任何人都可以解决我的问题。

感谢。

1 个答案:

答案 0 :(得分:0)

Apple说:

重要说明:您不应在UIScrollView对象中嵌入UIWebView或UITableView对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆和错误处理。

因为UITableView继承自UIScrollView。使用UIView代替UIScrollView

如果您仍想在UIScrollView中使用UITableView。

制作自定义UIScrollView并添加此

 - (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event  {   

     // If not dragging, send event to next responder
     if (!self.dragging) 
         [self.nextResponder touchesEnded: touches withEvent:event]; 
     else
        [super touchesEnded: touches withEvent: event]; }

然后进行自定义UITableViewCell

 - (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event  {   
     // If not dragging, send event to next responder
     [super touchesEnded: touches withEvent: event]; }

&安培;使用这个自定义单元格。