как увеличить ячейку в табличном представлении - PullRequest
1 голос
/ 13 июля 2011

Я занимаюсь разработкой приложения, в котором я взял таблицу для отображения изображений в ячейках. Я указал размер ячейки в качестве размера экрана ipad и позаботился о том, чтобы прокрутить табличное представление, оно переходит к следующей ячейке. Теперь я хочу увеличить каждую ячейку, так как у меня есть требование. Чтобы добиться этого, я взял скроллвью, поместил его в представление содержимого ячейки и поместил изображения в скроллвью.

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

Может кто-нибудь предложить мне, если есть способ увеличить ячейку в табличном представлении? мы не можем поместить прокрутку в ячейку таблицы?

приветствуется любой подход.

TNQ

Ответы [ 3 ]

3 голосов
/ 21 августа 2014

Я тоже столкнулся с этой проблемой. Я решаю эту проблему следующим образом: Я добавил распознаватель жестов Pinch в ячейку tableView и применил следующий код:

- (void)scalePiece:(UIPinchGestureRecognizer *)gestureRecognizer {

  if ([gestureRecognizer state] == UIGestureRecognizerStateBegan ||   [gestureRecognizer state] == UIGestureRecognizerStateChanged) {
      [gestureRecognizer view].transform = CGAffineTransformScale([[gestureRecognizer view] transform], [gestureRecognizer scale], [gestureRecognizer scale]);
      [gestureRecognizer setScale:1];
  }
  else if ([gestureRecognizer state] == UIGestureRecognizerStateEnded)
  {
    if([gestureRecognizer view].transform.b<0 && [gestureRecognizer view].transform.c<1)
    {
        [gestureRecognizer view].transform=CGAffineTransformMake(0,-1.0,1.0,0,0,0);
    }
    [gestureRecognizer view].transform = CGAffineTransformScale([[gestureRecognizer view] transform], [gestureRecognizer scale], [gestureRecognizer scale]);
    [gestureRecognizer setScale:1];

  }
}
1 голос
/ 21 июля 2011

Я наконец отвечаю на свой вопрос после ожидания в течение нескольких дней. как я сказал в вопросе, что я хочу увеличить содержимое ячейки табличного представления, что, как я понял, невозможно.

Я попытался поместить представление прокрутки в ячейку таблицы и попытался увеличить, но распознаватель жестов не смог распознать жест, поскольку он был перепутан между прокруткой представления таблицы и моим просмотром прокрутки. потратив время на поиски в Интернете и на собственном опыте работы с табличным представлением и прокруткой, я пришел к выводу, что не могу увеличить содержимое ячейки табличного представления.

Я решил свой случай, назначив жест щипка суперпредставлению вида таблицы (представление прокрутки - мое суперпредставление). как только пинч распознан, я копирую содержимое представления содержимого ячейки табличного представления в представление и добавляю его в супер-представление, то есть представление с прокруткой, и, таким образом, увеличиваю представление. позже, после увеличения и уменьшения масштаба до одного, я удаляю вид из супер просмотра.

таким образом, я решил свое дело.

надеюсь, что это поможет другим в сценарии, подобном моему

TNQ

0 голосов
/ 30 июля 2016

взять переменную

NSInteger selectedindex

Теперь поместите эту вещь в

 - (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath {
   //whatever your code write here

   if (selectedindex == indexPath.row) {
         [self animateZoomforCell:cell];
   }else
   {
         [self animateZoomforCellremove:cell];
   } 
   return cell;
 }

 - (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    //whatever your code write here

  selectedindex =indexPath.row; 
    [self.tableView reloadData];
 }

Вы можете использовать этот метод для увеличения / уменьшения ячейки

  -(void)animateZoomforCell:(UITableViewCell*)zoomCell {
       [UIView animateWithDuration:0.2 delay:0  options:UIViewAnimationOptionCurveEaseOut
          animations:^{

       zoomCell.transform = CGAffineTransformMakeScale(1.6,1.6);
         } 
         completion:^(BOOL finished){
         }];
        }

   -(void)animateZoomforCellremove:(UITableViewCell*)zoomCell {
       [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{

        zoomCell.transform = CGAffineTransformMakeScale(1.0,1.0);
      }   
         completion:^(BOOL finished){
      }]; 
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...