0

iOS7 では、横方向に成長するボタンのアニメーションを生成する必要があります (片側のみ)。この効果を実現するために、スケーリングと移動を組み合わせてみましたが、問題は、スケーリングが境界線のサイズにも影響することです。これは私が望んでいるものではありません。

この例では、ボタンの長さを 2 倍にした後、サイド ボーダーの幅も 2 倍にしています。

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:CGRectMake(100, 100, 100, 100)];
[[button layer] setBorderWidth:2.0f];
[[button layer] setBorderColor:[UIColor blackColor].CGColor];

[UIView beginAnimations:@"button" context:nil];
[UIView setAnimationDuration:1];

button.transform = CGAffineTransformConcat( CGAffineTransformMakeScale(2,1), CGAffineTransformTranslate(button.transform, 50, 0));

button.alpha = 1.0f;
[UIView commitAnimations];
[self.view addSubview:button];

CGAffine 変換を使用せずにこの効果を達成する賢い解決策があるのではないかと思います。

4

2 に答える 2

1

borderWidthボタンの を他のプロパティでアニメーション化できます。アニメーション化可能です。幸運を!

于 2013-10-01T06:17:36.620 に答える
0
UIImage *originalImage = [UIImage imageNamed:@"myImage.png"];
UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);
UIImage *stretchableImage = [originalImage resizableImageWithCapInsets:insets];
[myButton setBackgroundImage:stretchableImage forState:UIControlStateNormal];
// the image will be stretched to fill the button, if you resize it.

UIEdgeInsets 構造体の値は、引き伸ばしたくないマージンを決定します。

ここから答える

于 2013-10-01T08:16:26.810 に答える