2014-01-16 2 views
0

Я использую UITableView для отображения количества строк. Когда я нажимаю на строку, для выполнения действия требуется длительный щелчок. Я проверил это LINK так же, как и моя проблема. Но все же это проблема.Выбор строки в UITableView принимает длинный щелчок

// 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) { 
      [email protected]"All Category"; 
      cell.textLabel.font = myFont; 
      cell.textLabel.textColor=[UIColor whiteColor]; 
     } 
     if (indexPath.row==1) { 
      [email protected]"Downloaded Category"; 
      cell.textLabel.textColor=[UIColor whiteColor]; 
      cell.textLabel.font = myFont; 
     } 

    } 
    return cell; 
} 

Когда щелкните строку в TableView она занимает много времени, нажмите, чтобы перейти к функции

tableView: didSelectRowAtIndexPath: 

Этот это значение, которое я получаю в виде таблицы.

enter image description here

Кто-нибудь может решить мою проблему.

Спасибо.

+0

Почему клетка всегда равна нулю? – Joshua

+0

перед тем, как добавить текст в ячейку, сделав его нулевым – KethanKumar

+0

, тогда вы на самом деле не используете повторно ячейку, но создаете новую каждый раз, когда вызывается cellForRow. – Joshua

ответ

0

Apple, говорит:

Важно: Вы не должны вставлять UIWebView или UITableView объекты в объектах UIScrollView. Если вы это сделаете, может возникнуть непредвиденное поведение, потому что события касания для двух объектов могут быть перемешаны и неправильно обработаны.

с UITableView наследует от UIScrollView. Используйте UIView вместо UIScrollView.

Если вы все еще хотите использовать UITableView в UIScrollView.

сделать пользовательские 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]; } 

& использовать этот обычай Cell.

+0

, если я добавлю uitableview в uiview, а затем предоставил такую ​​же проблему. Делает длинный щелчок, чтобы перейти к fucntion didSelectRowAtIndexPath. – KethanKumar

+0

затем попробуйте второй метод в ответ. – Xeieshan

+0

такой же проблема. может быть, что-то не так в моем коде кажется. не знаю, где это .. – KethanKumar

Смежные вопросы