// // RQPlaceListCell.m // JiaPei // // Created by 张嵘 on 2023/4/13. // #import "RQPlaceListCell.h" @interface RQPlaceListCell () @property (nonatomic, readwrite, strong) RQPlaceListItemViewModel *viewModel; @property (weak, nonatomic) IBOutlet UIImageView *myBottomImageView; @property (weak, nonatomic) IBOutlet UIImageView *myPlaceImageVIew; @property (weak, nonatomic) IBOutlet UILabel *myPlaceLabel; @property (weak, nonatomic) IBOutlet UILabel *myTotalLabel; @property (weak, nonatomic) IBOutlet QMUIButton *buyBtn; @end @implementation RQPlaceListCell #pragma mark - PublicMethods + (instancetype)cellWithTableView:(UITableView *)tableView { static NSString *ID = @"RQPlaceListCell"; RQPlaceListCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; if (!cell) { cell = [self rq_viewFromXib]; cell.selectionStyle = UITableViewCellSelectionStyleNone; } return cell; } - (void)bindViewModel:(RQPlaceListItemViewModel *)viewModel { // @weakify(self) _viewModel = viewModel; NSString *cityStr = viewModel.placeListModel.city; NSString *nameStr = viewModel.placeListModel.name; NSString *videoCountStr = [NSString qmui_stringWithNSInteger:viewModel.placeListModel.videoCount]; if (RQStringIsNotEmpty(cityStr) && RQStringIsNotEmpty(nameStr)) { self.myPlaceLabel.text = [NSString stringWithFormat:@"%@ | %@",cityStr, nameStr]; } else { if (RQStringIsNotEmpty(cityStr)) { self.myPlaceLabel.text = [NSString stringWithFormat:@"%@",cityStr]; } else if (RQStringIsNotEmpty(nameStr)) { self.myPlaceLabel.text = [NSString stringWithFormat:@"%@", nameStr]; } else { self.myPlaceLabel.text = @""; } } self.myTotalLabel.text = [NSString stringWithFormat:@"共%@节",videoCountStr]; [self.myPlaceImageVIew yy_setImageWithURL:[NSURL URLWithString:viewModel.placeListModel.image] placeholder:RQWebImagePlaceholder() options:RQWebImageOptionAutomatic completion:nil]; self.myBottomImageView.hidden = viewModel.isLast; RAC(self.buyBtn, hidden) = [[[RACObserve(viewModel.placeListModel, isCheckVip) deliverOnMainThread] takeUntil:self.rac_prepareForReuseSignal] map:^id _Nullable(id _Nullable value) { return @(!viewModel.placeListModel.isCheckVip); }]; } #pragma mark - SystemMethods - (void)awakeFromNib { [super awakeFromNib]; } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } @end