0

画像を右に移動し、ボタンを離すと停止するアニメーションがあります。画像のフレームを時間ごとに変更する必要があるため、myImageView.frame = CGRectMake の代わりに CGRect 変数を使用しました。しかし、可変画像を使用すると、いつものようにその場で止まるのではなく、離すたびに元の場所に戻ります。

if (myInt == 2) {
    MyCGRect = CGRectMake(myImageView.frame.origin.x,myImageView.frame.origin.y,18,42);
} else {
    MyCGRect = CGRectMake(myImageView.frame.origin.x,myImageView.frame.origin.y,35,28);
}

-(IBAction)holdToMakeImageMove:(id)sender
{
//!!!!!This Works!!!!!!
myImageView.frame = CGRectMake(myImageView.frame.origin.x,myImageView.frame.origin.y,18,42);

//!!!!!!THIS doesnt work

myImageView.frame = MyCGRect;

//...animation

}
4

1 に答える 1

-1

たとえば、このコードは私にとってはうまくいきます。ボタンフレームを (0,800,50,50) から (0,0,100,100) に変更

@interface ViewController ()
...
@property (nonatomic, assign) CGRect myRect;
...
@end

@implementation ViewController
...
@synthesize myRect = _myRect;
...
- (void)viewDidLoad {
    [super viewDidLoad];

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [btn setFrame:CGRectMake(0, 800, 50, 50)];
    [btn addTarget:self action:@selector(avvia:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];

    self.myRect = CGRectMake(100, 0, 100, 100);
}
...
- (void)avvia:(id)sender {
    ((UIButton *)sender).frame = self.myRect;
}
...
@end
于 2012-08-14T21:32:56.237 に答える