2010-11-19 2 views
0

Привет, так это моя ситуация до сих пор. Я добавил UIImageView в Interface Builder и установил его на .png изображение иглы (Needle.png), я также подключил его к соответствующему IBOutlet в Xcode.Как повернуть иглу (для измерителя уровня звука) об этом происхождении?

В моем viewDidLoad: метод я поставил точку привязки,

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [needle.layer setAnchorPoint:CGPointMake(0.5, 1)]; 
} 

И я также создал кнопку в Interface Builder и подключил его к IBAction в Xcode, эта кнопка выполняет блок анимации,

- (IBAction)animate { 

[UIView beginAnimations:@"rotate" context:nil]; 
[UIView setAnimationDuration:1.0]; 
self.needle.transform = CGAffineTransformMakeRotation(10 * M_PI/180); 
[UIView commitAnimations]; 

} 

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

Например, если у меня есть значение децибела, которое дает мне текущий уровень децибела в комнате, я бы хотел, чтобы эта стрелка отражала это значение (т.е. 10 ° == 10 дБ), и поскольку это значение постоянно меняется, Я хочу, чтобы моя игла вращалась по часовой стрелке или против часовой стрелки соответственно.

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

ответ

3

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

Изменение значения поворота при изменении значения «постоянно меняющегося значения».

Что является стимулом для изменения этого значения? Поместите код, чтобы изменить его вращение.

Если значение KVO - вы можете использовать этот механизм для изменения вращения при изменении KVO.

Также - звучит так, как будто вы можете сделать изменение в блоке анимации, чтобы сделать движение игл более жидким. Скажем, например, значение меняется только один раз в секунду - внесите изменение в блок анимации, который заставляет его менять в течение секунды. Движение иглы будет менее «отрывистым».

Будьте предупреждены, что если вы делаете анимацию, установите setAnimationBeginsFromCurrentState - поэтому, если вы измените значения (и повторно оживите) на полпути через существующую анимацию, она «сделает правильную вещь».

+0

Спасибо всем, что я задал этот вопрос, первый, кто рекомендует использовать метод класса setAnimationBeginsFromCurrentState, и верю, что это или нет, что помогло мне понять, как я мог бы сделать эту работу так благодарю вас за ваш ответ ! – cgossain

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