iPhone: вращение прокрутки внутри UITableViewCell - PullRequest
0 голосов
/ 17 августа 2011

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

Но все, что я пробовал, не показывает никакой реакции.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations.

if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
    NSLog(@"rotate cell");
    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft){

        NSLog(@"left");
    }
    if (interfaceOrientation == UIInterfaceOrientationLandscapeRight){

        NSLog(@"right");
    }

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1];

    // (180 * M_PI) / 180 == M_PI, so just use M_PI
    imagescroll.transform = CGAffineTransformMakeRotation(M_PI);

    [UIView commitAnimations];

    NSLog(@"rotation should start but doesnt");
}



return (interfaceOrientation == UIInterfaceOrientationPortrait);

}

есть ли необходимость в перерисовке ячейки или что-то еще?


извините за недоразумения.

В UITableViewController я переопределяю функцию shouldAutoRotate и отправляю вызов функции всем ячейкам таблицы. TableViewController не имеет права вращаться и отправляет из своей собственной функции только NO назад. Но все ячейки могут что-то делать, и один из них должен вращать свой uiScrollView. Вызов поступает в ячейку, а NSLog выходит влево или вправо в зависимости от моей ротации. Но Scrollview Doent сделать что-нибудь.

Ответы [ 2 ]

1 голос
/ 17 августа 2011

Метод shouldAutorotateToInterfaceOrientation: не предназначен для фактического вращения. Это не метод UIView или UITableViewCell, а UIViewController. Подклассы UIViewController могут переопределить этот метод, чтобы указать, какие ориентации поддерживает текущий контроллер представления.

Переопределите этот метод в контроллере представления, который вы используете для отображения таблицы, и верните YES для поддерживаемых ориентаций, и поворот будет выполнен автоматически. Тогда все, что вам нужно сделать, это убедиться, что вы установили autoresizingMask представлений в вашем контроллере представлений, чтобы убедиться, что они растягиваются или уменьшаются соответственно.

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

1 голос
/ 17 августа 2011

Можете ли вы объяснить немного больше о том, чего вы пытаетесь достичь?Кажется, немного запутанным, метод shouldAutorotate переопределяется в UIViewController, чтобы позволить ОС знать, какие ориентации разрешены.Затем вы переопределяете методы willAutorotate и didAutorotate, чтобы перехватить эти конкретные действия.Тем не менее, большая часть этого не нужна, если вы правильно установите свойства вида (т. Е. Ваши подвиды будут также вращаться, если основной вид это делает).

Если вы добавите немного больше деталей в качестве комментария, я будуобновите этот ответ более подходящими материалами.

С уважением

Дэйв

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...