押された状態に応じて、UIButton(resizableImagesで作成された)にテキストを表示しようとしています。私が見ている動作は、ボタンを押すとボタンの画像の幅が変化する(広くなる)ことです。私が欲しいのは、私がそれを押すとテキストが変わることですが、ボタンは同じ幅のままです。私はいくつかのUIButtonオプションをいじりましたが、運がありませんでした。私が現在行っていることは次のとおりです:(興味深いことに、ボタンの幅の変化量は、ボタンのフレームの幅と相関しているように見えます(より大きく->より多くの変化):
UIImage *normalButton = [UIImage imageNamed:@"ButtonSlice.png"];
UIImage *pressedButton = [UIImage imageNamed:@"ButtonPressedSlice.png"];
normalButton = [normalButton resizableImageWithCapInsets:UIEdgeInsetsMake(0, 2, 0, 2)];
pressedButton = [pressedButton resizableImageWithCapInsets:UIEdgeInsetsMake(0, 2, 0, 2)];
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
[myButton setImage:normalButton forState:UIControlStateNormal];
[myButton setImage:pressedButton forState:UIControlStateHighlighted];
[myButton addTarget:self action:@selector(pressed) forControlEvents:UIControlEventTouchUpInside];
myButton.titleLabel.font = [UIFont fontWithName:@"Helvetica" size:18.0];
[myButton setTitleColor:[UIColor colorWithWhite:0.1 alpha:1] forState:UIControlStateNormal];
[myButton setTitle:@"Highlighted" forState:UIControlStateHighlighted];
[myButton setTitle:@"Default" forState:UIControlStateNormal];
myButton.titleLabel.textAlignment = UITextAlignmentCenter;
//No effect?
myButton.adjustsImageWhenHighlighted = NO;
myButton.frame = CGRectMake(ceil(controllerFrame.size.width/2 - 100), 80, 200, 50);