2015-02-24 2 views
0

У меня есть UITableView внутри UIView, позвоните ему view_A. Есть UIViewController, назовите его mainViewController. Внутри него находится UIButton. При нажатии этой кнопки я добавляю view_A в качестве представления к представлению mainViewController. В таблице есть несколько пунктов меню. Проблема заключается в том, что tableview не реагирует на касание правильно. Я должен нажать клетку долго, чтобы сделать выбор. На нем нет никакого жеста. Другого взгляда не видно. Это абсолютно здорово, это поведение. Пожалуйста, взгляните на следующий код и укажите, что может вызвать проблемы. Это реализация Делегат/презентации в mainViewcontroller:Почему UITableViewCell принимает длинный жест?

-(void) showDropDownMenu: (UIButton *) sender 
    { 
     UINib *nib = [UINib nibWithNibName:@"DropDownMenuView" bundle:nil]; 
     self.myView = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0]; 
     self.myView.hidden = NO; 
     self.myView.tag = 101; 
     self.myView.delegate = self; 
     self.myView.btnBack.hidden = YES; 
     CATransition *transition = nil; 
     transition = [CATransition animation]; 
     transition.duration = 0.2; 
     transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
     transition.type = kCATransitionPush; 
     transition.subtype =kCATransitionFromBottom ; 
     transition.delegate = self; 
     [self.myView.layer addAnimation:transition forKey:nil]; 
     [self.view addSubview:self.myView]; 

    } 

-(void) hideDropDownMenu 
{ 
    CATransition *transition = nil; 
    transition = [CATransition animation]; 
    transition.duration = 0.2;//kAnimationDuration 
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]; 
    transition.type = kCATransitionPush; 
    transition.subtype =kCATransitionFromTop; 
    transition.delegate = self; 
    [self.myView.layer addAnimation:transition forKey:nil]; 
    self.myView.tag = 102; 
    [UIView commitAnimations]; 



} 
-(void) navigateBack 
{ 

} 
-(void) themeSelected: (NSIndexPath *) indexPath 
{ 
    NSLog(@"%ld",(long)indexPath.item); 
    themeNumber = [NSString stringWithFormat:@"%li",(indexPath.row+1)]; 
    [self setUpTheme]; 
} 

Это реализация файла cell.h:

@interface ThemeTableViewCell : UITableViewCell 
@property (weak, nonatomic) IBOutlet UILabel *themeName; 
@property (weak, nonatomic) IBOutlet UIImageView *themePreview; 

Это реализация cell.m файла:

#import "ThemeTableViewCell.h" 
@implementation ThemeTableViewCell 
- (void)awakeFromNib { 
    // Initialization code 
    //ORIGINAL 82 
    self.clipsToBounds = YES; 
} 
- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state 
} 
  1. My View_A .h файл можно найти here.

  2. View_A.m файл можно найти here.

ОБНОВЛЕНИЕ: Я записал жесты и получился какой-то длинный жест нажатия на ячейки.

+0

ваш TableCell не содержат какой-либо вид аксессуаров (например, флажок, кнопка раскрытия подробно и т.д.), в которых ОС эта проблема возникает. В одном из моих проектов я сталкиваюсь с той же проблемой в IOS7.0, я использую аксессуар в UItableviewcell. Чтобы решить эту проблему, я удаляю это представление. –

+0

Нет, это обычный стол. Ячейки имеют только изображение в них. – NSNoob

ответ

0

Вы отключите сотовый ImageView userInteraction, если не попробовать это cell.yourImageView.userInteractionEnabled = NO

+0

Я не думаю, что это повлияло бы на производительность ячейки, но так или иначе я это пробовал, и проблема все еще сохраняется. – NSNoob

+1

попробуйте это, чтобы проверить, что ваша ячейка имеет жест или нет 'for (жестЬ UIGestureRecognizer * в cell.contentView.gestureRecognizers) { NSLog (@"% i тип жестов% @ ", indexPath.row, gesture.class); // NSLog (@ "min% f", ((UILongPressGestureRecognizer *) жест) .minimumPressDuration); NSLog (@ "isEnabled% d", gesture.enabled); } ' –

+0

Blimey. Он говорит Длинные жесты. Но я вообще не добавлял никаких жестов, как вы можете видеть в коде. Что вы предлагаете мне делать? – NSNoob