-1

@ jsetting32 のおかげUITableViewCellで、tableView の下部にボタンを備えたカスタムが完成しました。ただし、これらのボタンをクリックしても、selectedState の値が変化しないため、エンドユーザーがクリックしたかどうかを判断するのが少し難しくなります。

self.likeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.likeButton addTarget:self action:@selector(didTapLikeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[self.likeButton setTitle:@"Pray" forState:UIControlStateNormal];
[self.likeButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self.likeButton setTitleColor:[UIColor blueColor] forState:UIControlStateSelected];
[[self.likeButton titleLabel] setFont:[UIFont fontWithName:@"Verdana" size:12.0f]];
[self.cellView addSubview:self.likeButton];
4

4 に答える 4

1

私。タッチしている間は、上記のように UIControlStateHighlighted を使用してください。ii. 別の色を維持する: カスタム UITableViewCell があるため、IBAction を実装し、UIButton を使用してこれに設定する必要があります。

[self.likeButton addTarget:self action:@selector(select:) forControlEvents:UIControlEventTouchUpInside];

セル セットの .m ファイル内:

-(IBAction)onSelectCellClicked:(id)sender {
   if(self.yourButton.selected) {
      self.yourButton.selected = NO;
    } else {
      self.yourButton.selected = YES;
    }
}

これをセルの .h ファイルに入れた後、行のセルでセルのデリゲートを self に設定します。

@protocol CustomCellDelegate <NSObject>
@end

@interface CustomCell : UITableViewCell
@property (strong, nonatomic) NSObject<CustomCellDelegate>* delegate;

@end

そして、カスタムセルを使用して UITableView を提示している VC を入れます。

于 2015-01-09T22:06:57.283 に答える
1

UIControlStateHighlighted代わりに試してくださいUIControlStateSelected

[self.likeButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self.likeButton setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];
于 2015-01-09T16:55:04.947 に答える