0

initWithFrame:こんにちは私は次のようにそのメソッドにUIButtonを追加するUIViewを持っています:

UIButton * dropB = [UIButton buttonWithType:UIButtonTypeRoundedRect];
dropB.frame = CGRectMake(190, 22, 52, 22);
dropB.backgroundColor = [UIColor clearColor];
dropB.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:11];
[dropB setTitle:@"DROP" forState:UIControlStateNormal];
[dropB addTarget:viewController 
          action:@selector(dropSelectedObject)
forControlEvents:UIControlEventTouchUpInside];

[self addSubview:dropB];

次に、次のようなサイズ変更でビューをアニメーション化しようとすると、次のようになります。

[UIView beginAnimations:@"MoveIt" context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationBeginsFromCurrentState:YES];
self.dropButton.center = CGPointMake(self.dropButton.center.x + 80, self.dropButton.center.y -10);
self.frame = CGRectMake(0, 0, WIDTH, HEIGHT); 
self.center = CGPointMake(CENTER_X, CENTER_Y);
[UIView commitAnimations];

ボタンは、前の位置である新しい位置にのみ変換されます(元の座標は私が推測するビューを基準にしていました)。どうすれば指定したポイントに変換できますか?

4

1 に答える 1

0

わかりました、それはかなり単純でした(そして愚かでした)。

UIButtonを固定の高さに保つ必要があるため、サイズ変更時に「柔軟」なスペースを指定する必要がありました。autoresizingMaskこれは、UIViewのプロパティを次のように使用して実行できます。

dropB.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin |UIViewAutoresizingFlexibleBottomMargin;

アニメーションの指示の中でanithingを呼び出さない

于 2010-08-19T17:32:00.957 に答える