Как повернуть imageView в UIButton, а НЕ масштабировать его - PullRequest
16 голосов
/ 16 августа 2010

Я пытаюсь повернуть свойство imageView UIBUtton без его масштабирования.Изображение, о котором идет речь, имеет размер 24x18 - шире, чем оно высокое, но после поворота на место изображение масштабируется, чтобы сохранить это измерение - оставляя меня с очень сжатым изображением.Как я могу предотвратить это?

Ниже мой код.

-(IBAction)rotateButton
{
NSLog( @"Rotating button" );

[UIView beginAnimations:@"rotate" context:nil];
[UIView setAnimationDuration:.5f];
if( CGAffineTransformEqualToTransform( button.imageView.transform, CGAffineTransformIdentity ) )
{
    button.imageView.transform = CGAffineTransformMakeRotation(M_PI/2);
} else {
    button.imageView.transform = CGAffineTransformIdentity;
}
[UIView commitAnimations];
}

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

Ваши подсказки и приветствия приветствуются

M.

Ответы [ 3 ]

53 голосов
/ 24 февраля 2013

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

button.imageView.clipsToBounds = NO;
button.imageView.contentMode = UIViewContentModeCenter;
3 голосов
/ 06 января 2016

Я обнаружил, что подкласс UIButton для удаления преобразования во время layoutSubviews работал следующим образом:

class RotatableImageButton: UIButton {
    override func layoutSubviews() {
        let originalTransform = imageView?.transform
        imageView?.transform = CGAffineTransformIdentity
        super.layoutSubviews()
        if let originalTransform = originalTransform {
            imageView?.transform = originalTransform
        }
    }
}
1 голос
/ 16 августа 2010

Я видел, что свойство UIImageView UIButtons ведет себя очень странно - кажется, что некоторые из их свойств доступны только для чтения, включая настройку UIViewContentMode, о которой вы здесь говорите.

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

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