2012-06-04 2 views
0

Я пытаюсь масштабировать UIView с помощью UISlider, но результат не очень хорошо с этим подходом:Шкала UIView с помощью UISlider

- (void)setScale:(float)scale { 
    CGAffineTransform transform = CGAffineTransformScale(myView.transform, scale, scale); 
      myView.transform = transform; 

} 

благодарит

+2

Что означает «нехорошо»? Разве это не работает? Это работает, но не так, как вы этого хотите? Это проблема производительности? – LavaSlider

+0

Работает плохо со странным поведением. – Enlil

+0

Пустота вместо IBAction - это потому, что этот метод вызывается из делегата – Enlil

ответ

2

Вы хотите изменить шкалу, основанную на идентичности transform (который представляет объект без каких-либо изменений). Этот код работает:

- (void)sliderDidChangeValue:(id)sender 
{ 
    // the slider 
    UISlider *slider = sender; 

    // get your view or use the ivar if you have it in one 
    UIView *view = [self.view viewWithTag:12]; 

    CGAffineTransform transform = CGAffineTransformScale(CGAffineTransformIdentity, slider.value, slider.value); 
    view.transform = transform; 
} 

При создании ползунка вы можете начать значение на 1, если ваше мнение начинает в полном размере.

+0

Большое вам спасибо :) – Enlil

Смежные вопросы