2016-03-13 1 views
0

Прошу прощения за задание этого вопроса в миллионный раз, я прочитал другие вопросы, задающие одно и то же, и я не смог найти ответ на мою проблему!UITapGestureRecognizer не работает, Objective-C

Я сделал UITapGestureRecognizer, который просто не работает, может кто-то взглянуть на мой код и рассказать мне, что я делаю неправильно?

-(void) formatCellForY: (CGFloat) y{ 

CGRect screen = [[UIScreen mainScreen] bounds]; 
CGFloat cellHeight = 70; 

self.cell = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"Cell"]]; 
[self.cell setFrame:CGRectMake(20, y, screen.size.width - 40, cellHeight)]; 

self.cell.backgroundColor = [UIColor grayColor]; 
self.cell.userInteractionEnabled = YES; 


self.cell.layer.shadowColor = [UIColor blackColor].CGColor; 
self.cell.layer.shadowOffset = CGSizeMake(0, 1); 
self.cell.layer.shadowOpacity = 1.0; 
self.cell.layer.shadowRadius = 1.0; 
self.cell.layer.cornerRadius = 1.0; 
self.cell.clipsToBounds = NO; 

UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 5, self.cell.frame.size.width - 40, cellHeight*(.4))]; 
titleLabel.numberOfLines = 32; 
titleLabel.text = self.program.programName; 
titleLabel.textColor = [UIColor whiteColor]; 
titleLabel.userInteractionEnabled = YES; 
[self.cell addSubview:titleLabel]; 

UILabel *explanationLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, titleLabel.frame.origin.y + titleLabel.frame.size.height, titleLabel.frame.size.width, cellHeight - (titleLabel.frame.origin.y+ titleLabel.frame.size.height))]; 
explanationLabel.text = self.program.programDescription; 
explanationLabel.numberOfLines = 3; 
explanationLabel.textColor = [UIColor whiteColor]; 
explanationLabel.font = [UIFont systemFontOfSize:10.0]; 
explanationLabel.userInteractionEnabled = YES; 
[self.cell addSubview:explanationLabel]; 

self.tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(goToInfoPage:)]; 
self.tap.numberOfTapsRequired = 1; 
self.tap.numberOfTouchesRequired = 1; 
self.tap.enabled = YES; 
[self.cell addGestureRecognizer:self.tap]; 

NSLog(@"%@", self.tap); 
} 

Вот код, который я использовал для добавления ячейки на экран.

for (CKRecord *record in records) { 
     SBHProgram *program = [SBHProgram programForRecord:record]; 
     SBHCell *cell = [SBHCell cellForProgram:program andY:90*i]; 
     i++; 
     [scrollView addSubview:cell.cell]; 
} 
+3

Вы создали "ячейку", но вы добавили "клетку" к любым подвидов еще? Я вижу, вы добавили subviews в ячейку ....... – kvr

+0

Да, ячейка добавлена ​​в основной вид в MainViewController – Nshweky

+0

@Nshweky: Это работает на моем симуляторе! –

ответ

0

Вы пропустили добавление self.cell для просмотра. Вы можете видеть ярлыки с текстами, потому что вы добавили self.cell.clipsToBounds = NO;

Все, что вам нужно сделать, это добавить ячейку для просмотра.

[self.view addSubview: self.cell]

+0

Я добавил ячейку к моему представлению ... – Nshweky

+0

С каким методом вы вызываете formatCellForY:? – nutz

+0

Инициализатор класса SBHCell. – Nshweky

-1

ПОЖАЛУЙСТА ADD

self.tap.delegate = self; 
+0

Я уже пробовал это, это не помогло .... – Nshweky

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

  • Нет связанных вопросов^_^