のハイライト状態には2 つの異なる画像
が必要UIButton
です。
私はこれらのコード行を持っています:
- (IBAction)buttonPressed:(id)sender
{
UIImage *followImageHighlighted = [UIImage imageNamed:@"follow-hilite.png"];
UIImage *unfollowImageHighlighted = [UIImage imageNamed:@"unfollow-hilite.png"];
if ([sender isSelected]) {
// set this image for the next time the button will pressed
[sender setImage:unfollowImageHighlighted forState:UIControlStateHighlighted];
} else {
// set this image for the next time the button will pressed
[sender setImage:followImageHighlighted forState:UIControlStateHighlighted];
}
}
- (void)viewDidLoad
{
// ...
UIImage *followImage = [UIImage imageNamed:@"follow.png"];
UIImage *unfollowImage = [UIImage imageNamed:@"unfollow.png"];
[self.followButton setImage:followImage forState:UIControlStateNormal];
[self.followButton setImage:unfollowImage forState:UIControlStateSelected];
}
問題は、ボタンを押すたびに強調表示された画像が表示されることfollow-hilite.png
です。
道路上のボタンのハイライト画像を変更できませんか?
これは悪い制限だと思います。なぜなら、ボタンが選択されて (つまり、「フォロー中」)、ユーザーがそれを押すと、デフォルトの画像が表示されます。完了すると、ボタン画像が選択したものに正しく切り替わります。
アイデア?
編集
- (IBAction)followButtonTapped:(id)sender
{
BOOL isFollowed = [sender isSelected];
NSString *urlString = isFollowed ? kUnfollowURL : kFollowURL;
// operation [...]
[self.followButton setSelected:(isFollowed) ? NO : YES];
self.user.followed = !isFollowed;
}
私は問題をよりよく説明します:
- デフォルト状態のボタン: 白い背景に黒いテキスト
- 選択状態のボタン: 黒地に白文字
ターゲット ユーザーがフォローされていない場合、ボタンはデフォルトの状態であり、ボタンを押そうとすると、正しい強調表示された画像が表示されます。
しかし、ターゲットユーザーがフォローされていて、ボタンが選択された状態にある場合、ボタンを押して(指を押したままに)しようとすると、白い背景に黒いテキストのボタンが表示されます。これは非常に醜く、これは私の問題です。