CGAffineTransform: вращение на UIButton изменяет размер изображения кнопки

У меня странная проблема с использованием UIButtons, введите custom. Я помещаю 4 из этих кнопок на UIScrollview, поворачивая каждую кнопку на случайный угол с помощью CGAffineTransform. Теперь кажется, что сами кнопки меняют размер в зависимости от угла поворота.

UIGraphicsBeginImageContext(tempCtxSize);
[cookbookImage drawInRect:CGRectMake(imgOffsetX, imgOffsetY+frmOffsetY, cookbookImage.size.width, cookbookImage.size.height)];
[cookbookFrame drawInRect:CGRectMake(0.0f, frmOffsetY, cookbookFrame.size.width, cookbookFrame.size.height)];
UIImage *combinedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

…

UIButton *cookbookViewButton = [UIButton buttonWithType:UIButtonTypeCustom];
[cookbookViewButton setFrame:CGRectMake(0.0f, 0.0f, combinedImage.size.width, combinedImage.size.height)];

[cookbookViewButton setBackgroundColor:[UIColor clearColor]];
[cookbookViewButton setBackgroundImage:combinedImage forState:UIControlStateNormal];

CGAffineTransform rotation = [cookbookViewButton transform];
rotation = CGAffineTransformRotate(rotation, angle); // some random angle
[cookbookViewButton setTransform:rotation];

person Michael    schedule 14.06.2010    source источник


Ответы (2)


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

из: Автоматическая обработка изменений макета с использованием правил автоматического изменения размера< /а>

Решение: установите для параметра autoResizeSubviews родительского представления значение NO.

    parentView.autoresizesSubviews = NO;
person Community    schedule 20.07.2012

Не устанавливайте рамку cookbookViewButton - установите границы.

person Allyn    schedule 16.12.2010