Поверните пользовательский UITableViewCell

У меня есть пользовательский UITableViewCell, который содержит несколько UIButtons. Положение кадра каждой кнопки относительно ширины ячеек. Я установил autoresizingMask=UIViewAutoresizingFlexibleWidth, таким образом, он скорректирует ширину ячеек и положения кнопки правильно, когда приложение запустится с устройства или в среде или в режиме портрета.

Проблема - когда устройство повернуто от одного режима до другого, кнопки не регулируют положения, потому что UITableViewCell является допускающим повторное использование. Другими словами, ячейка не инициализируется на основе новой ширины UITalbeView, потому что функция ячейки initWithStyle вызвана, прежде чем устройство поворачивают и не называют снова после вращения устройства. Какие-либо предложения?

7
задан casperOne 4 December 2012 в 16:51
поделиться

1 ответ

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

static NSString*Identifier;

if ([UIDevice currentDevice].orientation!=UIDeviceOrientationLandscapeLeft && [UIDevice currentDevice].orientation!=UIDeviceOrientationLandscapeRight) {
                Identifier= @"aCell_portrait";
            }
            else Identifier= @"DocumentOptionIdentifier_Landscape";


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Identifier];
7
ответ дан 6 December 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: