Intereting Posts
Почему мой segue из ячейки UITableView для работы detailView? Как сохранить ссылку на элемент управления, добавленный программно? AVSpeechSynthesizer рекурсивный вызов в некоторых случаях и повесить приложение В ARC как дочерний объект сообщает родительскому объекту, что я сделан, пожалуйста, отпустите меня (чтобы избежать утечек памяти) opencv2.framework / opencv2 (surf.o) дубликаты символов для архитектуры armv7 MPMoviePlayerController initWithContentURL проверяет, содержит ли URL-адрес видео FCM iOS – удалять стареющие носовые фрагменты при получении нового Push Notififation Может ли CIDetector возвращать более одного CIF-параметра типа CIDetectorTypeRectangle? UITableView в Xcode 9.0.1 Swift 4 Размер ячейки не расширяется во время выполнения.? NSMetadataQuery не отправляет уведомление по завершении (или не завершает) Ошибка objectFromJSONString при запуске приложения, которое использует Simperium Основные данные: NSPredicate, который выглядит в двух объектах Пользовательский UIAlertView: как предотвратить автоматический запуск объекта Objective-C ARC или Как сохранить объект вручную в среде ARC Как искать данные из Китая Попробуйте получить UIImage из URL-адреса библиотеки активов

Как показать кнопки в ячейке uitableview и их действие будут отображаться на ярлыке в той же ячейке

В UITableViewCell есть разные кнопки, и когда я нажимаю на любую кнопку, его действие выполняется на всех ячейках, но я хочу, чтобы при нажатии кнопки, действие будет показано на ярлыке той же ячейки, я знаю, что мне нужно поместить их в массив, но как …?

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

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; likeShow=[[UILabel alloc]initWithFrame:CGRectMake(0, 160, 80, 20)]; likeBtn=[UIButton buttonWithType:UIButtonTypeCustom]; [likeBtn addTarget:self action:@selector(likeFn) forControlEvents:UIControlEventTouchUpInside]; likeBtn.frame=CGRectMake(0, 110, 90, 50); [likeBtn setTitle:@"Like" forState:UIControlStateNormal]; [likeBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [cell addSubview:likeBtn]; [cell addSubview:likeShow]; return cell; } 

Это действие кнопки

 -(void)likeFn{ NSString *str; NSMutableString *mystring=[NSMutableString string]; likeCount++; str =[NSString stringWithFormat:@"%d",likeCount]; NSString *world = @"Like"; NSString *helloWorld = [world stringByAppendingString:str]; likeShow.text=helloWorld; } 

Попробуйте приведенный ниже код

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *CellIdentifier = [NSString stringWithFormat:@"Cell-%d",indexPath.row]; UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; //[cell clearsContextBeforeDrawing]; } cell.selectionStyle = UITableViewCellSelectionStyleNone; int lbltag = 1000; UIButton *likeBtn = nil; UILabel *likeShow = nil; if ([cell viewWithTag:lbltag]) { likeShow = (UILabel*)[cell viewWithTag:lbltag]; } else { likeShow=[[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 80, 20)] autorelease]; likeShow.text = [NSString stringWithFormat:@"%d likes",[[_marrTest objectAtIndex:indexPath.row] intValue]]; likeShow.tag = lbltag; [cell addSubview:likeShow]; } if ([cell viewWithTag:indexPath.row+1]) { likeBtn = (UIButton*)[cell viewWithTag:indexPath.row+1]; } else { likeBtn=[UIButton buttonWithType:UIButtonTypeCustom]; likeBtn.tag = indexPath.row+1; [likeBtn addTarget:self action:@selector(likeFn:) forControlEvents:UIControlEventTouchUpInside]; likeBtn.frame=CGRectMake(90, 0, 90, 50); [likeBtn setTitle:@"Like" forState:UIControlStateNormal]; [likeBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [cell addSubview:likeBtn]; } return cell; } -(void)likeFn:(UIButton*)btnClicked { NSString *strLikes = [_marrTest objectAtIndex:btnClicked.tag-1]; int likeCount = [strLikes intValue] + 1; [_marrTest replaceObjectAtIndex:btnClicked.tag-1 withObject:[NSString stringWithFormat:@"%d",likeCount]]; NSIndexPath *selectedIndexPath = [NSIndexPath indexPathForRow:btnClicked.tag-1 inSection:0]; UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:selectedIndexPath]; UILabel *requiredLabel = (UILabel*)[cell viewWithTag:1000]; NSString *str = requiredLabel.text; //str = [str stringByAppendingFormat:@"selected %@", str]; requiredLabel.text = @""; requiredLabel.text = [NSString stringWithFormat:@"%d likes",[[_marrTest objectAtIndex:btnClicked.tag-1] intValue]]; //do what ever you want with the label } 

Создайте ячейку в отдельном файле nib. добавить кнопку и метку для этой ячейки. Также создайте класс представления для этой ячейки и задайте класс для ячейки в файле nib как класс, который вы создали. Сделайте выходную форму в файл класса. Также создайте действие для кнопки и выполните действие. и используйте эту ячейку в представлении таблицы.

 -(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; likeShow=[[UILabel alloc]initWithFrame:CGRectMake(0, 160, 80, 20)]; likeBtn=[UIButton buttonWithType:UIButtonTypeCustom]; [likeBtn addTarget:self action:@selector(likeFn::) forControlEvents:UIControlEventTouchUpInside]; likeBtn.frame=CGRectMake(0, 110, 90, 50); [likeBtn setTitle:@"Like" forState:UIControlStateNormal]; [likeBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [cell.contentView addSubview:likeBtn]; [cell.contentView addSubview:likeShow]; return cell; } -(void)likeFn:(UIButton *)sender :(UIEvent *)event{ NSSet *touches = [event allTouches]; UITouch *touch = [touches anyObject]; CGPoint currentTouchPosition = [touch locationInView:self.view]; NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:currentTouchPosition]; UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; NSString *str; NSMutableString *mystring=[NSMutableString string]; likeCount++; str =[NSString stringWithFormat:@"%d",likeCount]; NSString *world = @"Like"; NSString *helloWorld = [world stringByAppendingString:str]; for(id subView in cell.contentView.subviews){ { if([subView isKindOfClass:[UILabel class]]){ UILabel *tmpLabel = (UILabel *)subView; tmpLabel.text=helloWorld; } } } 

Попробуйте этот код, это может помочь вам

попробуйте установить теги как:

 likeBtn.tag = indexPath.row; likeShow.tag = indexPath.row; 

и в likeFn :

 - (void)likeFn: (id)sender { UIButton * btn = (UIButton*)sender; //check if the btn tag and label tag are same. } 

Проверьте этот код. Это может быть полезно для вас.

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *CellIdentifier = @"Cell"; UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; [cell clearsContextBeforeDrawing]; } cell.selectionStyle = UITableViewCellSelectionStyleNone; likeShow=[[UILabel alloc]initWithFrame:CGRectMake(0, 160, 80, 20)]; likeBtn=[UIButton buttonWithType:UIButtonTypeCustom]; [likeBtn addTarget:self action:@selector(likeFn) forControlEvents:UIControlEventTouchUpInside]; likeBtn.frame=CGRectMake(0, 110, 90, 50); [likeBtn setTitle:@"Like" forState:UIControlStateNormal]; [likeBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [cell addSubview:likeBtn]; [cell addSubview:likeShow]; return cell; } 

Метод USE didSelectRowAtIndexPath

  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; return; 

}