かなり奇妙なことに気づきました。Xcode 5 のストーリーボードを使用して、非常に単純なアプリを作成します。ビューが 1 つだけのビュー コントローラー。このビューには、スライダーと 2 つの画像があります。スライダーを動かすと、一方の画像が拡大縮小され、もう一方の画像が移動します。コントロールをView Controllerに接続します
TestViewController.h:
@interface TestViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIImageView *scaleImage;
@property (weak, nonatomic) IBOutlet UIImageView *moveImage;
- (IBAction)sliderChanged:(UISlider *)sender;
@end
そして、TestViewController.m で、sliderChanged を実装します。
- (IBAction)sliderChanged:(UISlider *)sender {
self.scaleImage.transform = CGAffineTransformMakeScale([sender value], [sender value]);
CGRect targetFrame = self.moveImage.frame;
targetFrame.origin = CGPointMake(targetFrame.origin.x + (100 * [sender value]) - 50, targetFrame.origin.y);
self.moveImage.frame = targetFrame;
}
今、奇妙な部分が来ます。スライダーをドラッグすると、スケール イメージは正しくスケーリングされますが、スライダーを放す (つまり、ドラッグを停止する) まで移動イメージは移動しません。何らかの形で変換がドローコールをブロックしていますか?