Представление заголовка раздела UICollectionView не вращается должным образом в iOS9

У меня есть приложение для iPad с меню ресторана, разработанное для iOS 7, в котором используется collectionView, который прокручивается по горизонтали в ландшафтном режиме. Заголовок раздела меню выглядит так:

введите здесь описание изображения

И вот так выглядит файл xib для представления заголовка раздела:

введите здесь описание изображения

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

//Rotate the sectionHeader label
[sectionHeader.headerLabel setTransform:CGAffineTransformMakeRotation(-M_PI/2)];

Теперь проблема в том, что после обновления до iOS9 метка вообще не отображается в заголовке раздела:

введите здесь описание изображения

Вот мой код для заголовка раздела:

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
    //UICollectionReusableView *reusableview = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath];

    SectionHeader *sectionHeader = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"MyHeaderID" forIndexPath:indexPath];



    //Load the Menu Sections from the menuSections Array
    MenuSection *menuSection = [[MenuSection alloc] init];
    menuSection = [self.menuSections objectAtIndex:indexPath.section];

    //Rotate the sectionHeader label
    [sectionHeader.headerLabel setTransform:CGAffineTransformMakeRotation(-M_PI/2)];

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"LanguageArabic"] == NO)
    {
        sectionHeader.headerLabel.text = [NSString stringWithFormat:@"%@", menuSection.sectionName];
    }
    else
    {
        sectionHeader.headerLabel.text = [NSString stringWithFormat:@"%@", menuSection.sectionNameArabic];
    }

    return sectionHeader;
}

Когда я комментирую строку «Повернуть заголовок раздела» выше и исправляю метку в файле xib, чтобы она была вертикальной и соответствовала размеру представления заголовка раздела, я получаю следующее, что является проблемой, потому что текст метки должен читаться вертикально снизу вверх. как 1-й снимок экрана:

введите здесь описание изображения

Наконец, я использую stickyHeaderFlowLayout Тодда Лэйни, чтобы сделать заголовки разделов липкими.

Почему это происходит с iOS9 и как это исправить? Спасибо


person Ali    schedule 22.05.2016    source источник


Ответы (1)


Когда вы применяете преобразование поворота, оно поворачивает вид вокруг своей центральной точки. Что вам нужно сделать, так это в вашем файле xib установить ограничения для метки, чтобы закрепить ее в центре ее супервизора по вертикали и горизонтали. И, конечно же, вы по-прежнему применяете преобразование вращения в своем коде. Это должно решить проблему.

введите здесь описание изображения

person almas    schedule 24.05.2016
comment
Спасибо. Это исправило это. Решение имеет смысл. Хотя я до сих пор не знаю, как это хорошо работало под iOS 7. - person Ali; 24.05.2016