修复bug

This commit is contained in:
liyuhua
2023-09-26 17:57:39 +08:00
parent 2a085a3ea0
commit 74dbc6a5fd
49 changed files with 1703 additions and 1309 deletions

View File

@@ -217,6 +217,7 @@
23B2AEC42A6516C200543D17 /* LoginForgetPasswordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2AEC22A6516C200543D17 /* LoginForgetPasswordViewController.m */; };
23BA165B2A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23BA165A2A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.m */; };
23C7C0B72A7CD7B000802205 /* XPNewMineGuildItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C7C0B62A7CD7B000802205 /* XPNewMineGuildItemView.m */; };
23E45C052AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E45C042AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m */; };
23E9E9972A80C3A100B792F2 /* XPMineGuildPersonalBillRecordVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9E9942A80C39F00B792F2 /* XPMineGuildPersonalBillRecordVC.m */; };
23E9E9982A80C3A100B792F2 /* XPMineGuildPersonalBillStatisVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9E9962A80C3A100B792F2 /* XPMineGuildPersonalBillStatisVC.m */; };
23E9E99B2A80C40000B792F2 /* XPMineGuildPersonalBillRecordHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9E9992A80C3FF00B792F2 /* XPMineGuildPersonalBillRecordHeadView.m */; };
@@ -1827,6 +1828,8 @@
23BA165A2A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIBaseAnimationViewModel.m; sourceTree = "<group>"; };
23C7C0B52A7CD7B000802205 /* XPNewMineGuildItemView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNewMineGuildItemView.h; sourceTree = "<group>"; };
23C7C0B62A7CD7B000802205 /* XPNewMineGuildItemView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewMineGuildItemView.m; sourceTree = "<group>"; };
23E45C032AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SessionDiscoverNewTableViewCell.h; sourceTree = "<group>"; };
23E45C042AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SessionDiscoverNewTableViewCell.m; sourceTree = "<group>"; };
23E9E9932A80C39E00B792F2 /* XPMineGuildPersonalBillStatisVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillStatisVC.h; sourceTree = "<group>"; };
23E9E9942A80C39F00B792F2 /* XPMineGuildPersonalBillRecordVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildPersonalBillRecordVC.m; sourceTree = "<group>"; };
23E9E9952A80C3A000B792F2 /* XPMineGuildPersonalBillRecordVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillRecordVC.h; sourceTree = "<group>"; };
@@ -4715,6 +4718,8 @@
18A61BE7274F9CF000A09A54 /* SessionListViewController.m */,
18EE3FDD2750C1F700A452BF /* SessionListCell.h */,
18EE3FDE2750C1F700A452BF /* SessionListCell.m */,
23E45C032AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.h */,
23E45C042AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m */,
);
path = SessionList;
sourceTree = "<group>";
@@ -11172,6 +11177,7 @@
E8998D852859B4FA00C68558 /* XPMineUserInfoGiftView.m in Sources */,
186A536B26FC6F2E00D67B2C /* XPShareItemCell.m in Sources */,
237B94C02A984DA7007853E3 /* Api+RoomTrumpet.m in Sources */,
23E45C052AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m in Sources */,
9B42869228C1AED4009034D2 /* XPReceiveRedPacketModel.m in Sources */,
E8B846C526FDB41A00A777FE /* XPMineUserInfolbumPresenter.m in Sources */,
9BFB101F2897CC4300B3985E /* XPAnchorCardView.m in Sources */,

View File

@@ -22,8 +22,10 @@
//[]😊
@property (strong, nonatomic) NSRegularExpression * regularExpression;
///
@property(nonatomic,copy) NSArray *emojiHantList;
///
@property(nonatomic,copy) NSArray *emojiHansList;
@end
@implementation QEmotionHelper
@@ -72,7 +74,7 @@
return _cacheTotalImageDictionary;
}
//String@"害~你好[微笑]" @"害~你好😊"
//String@"害~你好[微笑]", @"害~你好😊"
- (NSMutableAttributedString *)attributedStringByText:(NSString *)text font:(UIFont *)font {
NSArray<NSTextCheckingResult *> *emojis = [self.regularExpression matchesInString:text options:NSMatchingWithTransparentBounds range:NSMakeRange(0, [text length])];
@@ -107,9 +109,14 @@
#pragma mark - public
//AttributedString
//imageKey[] fontlabelFont😊
// @"[微笑]" @"😊"
// @@"[微笑]", @"😊"
- (NSAttributedString *)obtainAttributedStringByImageKey:(NSString *)imageKey font:(UIFont *)font useCache:(BOOL)useCache {
if([self.emojiHantList containsObject:imageKey]){
NSString *getImageKey = [self.emojiHansList safeObjectAtIndex1:[self.emojiHantList indexOfObject:imageKey]];
if(getImageKey != nil){
imageKey = getImageKey;
}
}
if (!useCache) {
//AttributedStringAttributedStringios12bug
UIImage *image = self.cacheTotalImageDictionary[imageKey];
@@ -166,6 +173,268 @@
[_cacheAttributedDictionary setObject:attrString forKey:keyFont];
return result;
}
- (NSArray *)emojiHantList{
if(!_emojiHantList){
_emojiHantList = @[@"[可愛]",
@"[大笑]",
@"[色]",
@"[噓]",
@"[親]",
@"[呆]",
@"[口水]",
@"[汗]",
@"[呲牙]",
@"[鬼臉]",
@"[害羞]",
@"[偷笑]",
@"[調皮]",
@"[可憐]",
@"[敲]",
@"[驚訝]",
@"[流感]",
@"[委屈]",
@"[流淚]",
@"[嚎哭]",
@"[驚恐]",
@"[怒]",
@"[酷]",
@"[不說]",
@"[鄙視]",
@"[阿彌陀佛]",
@"[奸笑]",
@"[睡著]",
@"[口罩]",
@"[努力]",
@"[摳鼻孔]",
@"[疑問]",
@"[怒罵]",
@"[暈]",
@"[嘔吐]",
@"[拜一拜]",
@"[驚喜]",
@"[流汗]",
@"[賣萌]",
@"[默契眨眼]",
@"[燒香拜佛]",
@"[晚安]",
@"[強]",
@"[弱]",
@"[OK]",
@"[拳頭]",
@"[勝利]",
@"[鼓掌]",
@"[握手]",
@"[發怒]",
@"[骷髏]",
@"[便便]",
@"[火]",
@"[溜]",
@"[愛心]",
@"[心碎]",
@"[鐘情]",
@"[唇]",
@"[戒指]",
@"[鉆石]",
@"[太陽]",
@"[有時晴]",
@"[多雲]",
@"[雷]",
@"[雨]",
@"[雪花]",
@"[愛人]",
@"[帽子]",
@"[皇冠]",
@"[籃球]",
@"[足球]",
@"[壘球]",
@"[網球]",
@"[臺球]",
@"[咖啡]",
@"[啤酒]",
@"[幹杯]",
@"[檸檬汁]",
@"[餐具]",
@"[漢堡]",
@"[雞腿]",
@"[面條]",
@"[冰淇淋]",
@"[沙冰]",
@"[生日蛋糕]",
@"[蛋糕]",
@"[糖果]",
@"[葡萄]",
@"[西瓜]",
@"[光碟]",
@"[手機]",
@"[電話]",
@"[電視]",
@"[聲音開啟]",
@"[聲音關閉]",
@"[鈴鐺]",
@"[鎖頭]",
@"[放大鏡]",
@"[燈泡]",
@"[錘頭]",
@"[煙]",
@"[炸彈]",
@"[槍]",
@"[刀]",
@"[藥]",
@"[打針]",
@"[錢袋]",
@"[鈔票]",
@"[銀行卡]",
@"[手柄]",
@"[麻將]",
@"[調色板]",
@"[電影]",
@"[麥克風]",
@"[耳機]",
@"[音樂]",
@"[吉他]",
@"[火箭]",
@"[飛機]",
@"[火車]",
@"[公交]",
@"[轎車]",
@"[出租車]",
@"[警車]",
@"[自行車]"];
}
return _emojiHantList;
}
- (NSArray *)emojiHansList{
if(!_emojiHansList){
_emojiHansList = @[ @"[可爱]",
@"[大笑]",
@"[色]",
@"[嘘]",
@"[亲]",
@"[呆]",
@"[口水]",
@"[汗]",
@"[呲牙]",
@"[鬼脸]",
@"[害羞]",
@"[偷笑]",
@"[调皮]",
@"[可怜]",
@"[敲]",
@"[惊讶]",
@"[流感]",
@"[委屈]",
@"[流泪]",
@"[嚎哭]",
@"[惊恐]",
@"[怒]",
@"[酷]",
@"[不说]",
@"[鄙视]",
@"[阿弥陀佛]",
@"[奸笑]",
@"[睡著]",
@"[口罩]",
@"[努力]",
@"[抠鼻孔]",
@"[疑问]",
@"[怒骂]",
@"[晕]",
@"[呕吐]",
@"[拜一拜]",
@"[惊喜]",
@"[流汗]",
@"[卖萌]",
@"[默契眨眼]",
@"[烧香拜佛]",
@"[晚安]",
@"[强]",
@"[弱]",
@"[OK]",
@"[拳头]",
@"[胜利]",
@"[鼓掌]",
@"[握手]",
@"[发怒]",
@"[骷髅]",
@"[便便]",
@"[火]",
@"[溜]",
@"[爱心]",
@"[心碎]",
@"[钟情]",
@"[唇]",
@"[戒指]",
@"[钻石]",
@"[太阳]",
@"[有时晴]",
@"[多云]",
@"[雷]",
@"[雨]",
@"[雪花]",
@"[爱人]",
@"[帽子]",
@"[皇冠]",
@"[篮球]",
@"[足球]",
@"[垒球]",
@"[网球]",
@"[台球]",
@"[咖啡]",
@"[啤酒]",
@"[干杯]",
@"[柠檬汁]",
@"[餐具]",
@"[汉堡]",
@"[鸡腿]",
@"[面条]",
@"[冰淇淋]",
@"[沙冰]",
@"[生日蛋糕]",
@"[蛋糕]",
@"[糖果]",
@"[葡萄]",
@"[西瓜]",
@"[光碟]",
@"[手机]",
@"[电话]",
@"[电视]",
@"[声音开启]",
@"[声音关闭]",
@"[铃铛]",
@"[锁头]",
@"[放大镜]",
@"[灯泡]",
@"[锤头]",
@"[烟]",
@"[炸弹]",
@"[枪]",
@"[刀]",
@"[药]",
@"[打针]",
@"[钱袋]",
@"[钞票]",
@"[银行卡]",
@"[手柄]",
@"[麻将]",
@"[调色板]",
@"[电影]",
@"[麦克风]",
@"[耳机]",
@"[音乐]",
@"[吉他]",
@"[火箭]",
@"[飞机]",
@"[火车]",
@"[公交]",
@"[轿车]",
@"[出租车]",
@"[警车]",
@"[自行车]"];
}
return _emojiHansList;
}
@end

View File

@@ -180,6 +180,7 @@
}
if(item.type == XPShareItemTagFaceBook){
FBSDKShareLinkContent*linkContent = [[FBSDKShareLinkContent alloc]init];
urlString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
linkContent.contentURL= [NSURL URLWithString:urlString];
linkContent.quote = content;

View File

@@ -78,7 +78,7 @@ NSString * const KeyWithType(Pi_KeyType type) {
NSDictionary *newDic = @{
@(KeyType_Agora) : @"83a19e8b6aa94ec18efba13dc8fc354a",///
@(KeyType_Agora) : @"f8713b6ec98c4c01adaf34cb4fa091b1",///
};
NSString * newValue = [newDic objectForKey:@(type)];
if(newValue != nil){

View File

@@ -115,6 +115,7 @@
[_sexImageView setTitle:[NSString getAgeWithBirth:_userInfo.birth] forState:UIControlStateNormal];
_sexImageView.backgroundColor = _userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _userInfo.gender != GenderType_Male;
self.idLabel.text = [NSString stringWithFormat:@"ID:%@", _userInfo.erbanNo];
self.greetButton.selected = !_userInfo.hello;
UIImage* image = self.experImageView.image;

View File

@@ -143,6 +143,7 @@
[self.sexImageView setTitle:[NSString getAgeWithBirth:_shuntInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _shuntInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _shuntInfo.gender != GenderType_Male;
self.nickLabel.text = _shuntInfo.name;
self.levelImageView.imageUrl = _shuntInfo.experUrl;
self.charmImageView.imageUrl = _shuntInfo.charmUrl;

View File

@@ -154,8 +154,8 @@
}];
[self.tagStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.headWearImageView.mas_right).offset(12);
make.right.mas_equalTo(-5);
make.left.mas_equalTo(self.headWearImageView.mas_right).offset(0);
make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(100));
make.bottom.mas_equalTo(self.headWearImageView.mas_centerY).offset(-3);
}];
@@ -166,13 +166,13 @@
[self.sexButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(32, 14));
}];
CGFloat starWidth = 14 * 46 / 18;
[self.constellationButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(46, 18));
make.size.mas_equalTo(CGSizeMake(starWidth,14));
}];
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.nickLabel);
make.left.mas_equalTo(self.tagStackView);
make.right.mas_lessThanOrEqualTo(self.userView).offset(-5);
make.top.mas_equalTo(self.headWearImageView.mas_centerY).offset(3);
}];
@@ -257,8 +257,8 @@
if (_userInfo) {
self.avatarImageView.imageUrl = _userInfo.avatar;
NSString * nick = _userInfo.nick;
if (nick.length > 10) {
nick = [nick substringToIndex:10];
if (nick.length > 8) {
nick = [nick substringToIndex:8];
nick = [NSString stringWithFormat:@"%@...", nick];
}
self.nickLabel.text = nick;

View File

@@ -0,0 +1,18 @@
//
// SessionDiscoverNewTableViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/6/10.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface SessionDiscoverNewTableViewCell : UITableViewCell
///是否隐藏小红点
@property (nonatomic,assign) BOOL hiddenDotView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,126 @@
//
// SessionDiscoverNewTableViewCell.m
// xplan-ios
//
// Created by on 2022/6/10.
//
#import "SessionDiscoverNewTableViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
@interface SessionDiscoverNewTableViewCell ()
///logo
@property (nonatomic,strong) NetImageView *logoImageView;
///
@property (nonatomic,strong) UILabel *titleLabel;
///
@property (nonatomic,strong) UIImageView *arrowImageView;
///
@property (nonatomic,strong) UIView * dotView;
@end
@implementation SessionDiscoverNewTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.logoImageView];
[self.contentView addSubview:self.titleLabel];
[self.contentView addSubview:self.arrowImageView];
[self.contentView addSubview:self.dotView];
}
- (void)initSubViewConstraints {
[self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.height.width.mas_equalTo(45);
make.centerY.mas_equalTo(self.contentView);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.logoImageView.mas_centerY);
make.left.mas_equalTo(self.logoImageView.mas_right).offset(15);
}];
[self.arrowImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(6.5, 11));
make.right.mas_equalTo(self.contentView).offset(-15);
make.centerY.mas_equalTo(self.contentView);
}];
[self.dotView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(8, 8));
make.centerY.mas_equalTo(self.contentView);
make.right.mas_equalTo(self.arrowImageView.mas_left).offset(-3);
}];
}
#pragma mark - Getters And Setters
- (void)setHiddenDotView:(BOOL)hiddenDotView {
_hiddenDotView = hiddenDotView;
self.dotView.hidden = _hiddenDotView;
}
- (NetImageView *)logoImageView {
if (!_logoImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_logoImageView = [[NetImageView alloc] initWithConfig:config];
_logoImageView.layer.masksToBounds = YES;
_logoImageView.layer.cornerRadius = 45 / 2;
_logoImageView.imageUrl = @"https://image.lecheng163.com/fxmx.png";
}
return _logoImageView;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
_titleLabel.backgroundColor = [UIColor clearColor];
_titleLabel.font = [UIFont systemFontOfSize:15.f weight:UIFontWeightMedium];
_titleLabel.textColor = DJDKMIMOMColor.mainTextColor;
_titleLabel.text = YMLocalizedString(@"SessionDiscoverNewTableViewCell0");
}
return _titleLabel;
}
- (UIImageView *)arrowImageView {
if (!_arrowImageView) {
_arrowImageView = [[UIImageView alloc] init];
_arrowImageView.userInteractionEnabled = YES;
_arrowImageView.image = [UIImage imageNamed:@"common_right_arrow"];
}
return _arrowImageView;
}
- (UIView *)dotView {
if (!_dotView) {
_dotView = [[UIView alloc] init];
_dotView.backgroundColor = [UIColor redColor];
_dotView.layer.cornerRadius = 4;
_dotView.layer.masksToBounds = YES;
}
return _dotView;
}
@end

View File

@@ -11,9 +11,9 @@
#import "NIMMessageUtils.h"
#import "NIMTimeUtils.h"
#import "UIView+NIM.h"
#import "QEmotionHelper.h"
#import "DJDKMIMOMColor.h"
#import <YYText/YYText.h>
#import <Masonry/Masonry.h>
@interface SessionListCell()
@@ -22,7 +22,7 @@
@property (nonatomic,strong) UILabel *nameLabel;
@property (nonatomic,strong) UILabel *messageLabel;
@property (nonatomic,strong) YYLabel*messageLabel;
@property (nonatomic,strong) UILabel *timeLabel;
@@ -67,8 +67,11 @@
self.avatarImageView.imageUrl = avatarUrl;
[self.nameLabel sizeToFit];
}
self.messageLabel.text = [NIMMessageUtils messageContent:recent.lastMessage];
[self.messageLabel sizeToFit];
NSString *messageTitle = [NIMMessageUtils messageContent:recent.lastMessage];
NSMutableAttributedString *messageAtt = [[QEmotionHelper sharedEmotionHelper]attributedStringByText:messageTitle font:self.messageLabel.font];
self.messageLabel.attributedText = messageAtt;
if (recent.lastMessage) {
self.timeLabel.text = [NIMTimeUtils showTime:recent.lastMessage.timestamp showDetail:NO];
} else {
@@ -160,9 +163,9 @@
return _nameLabel;
}
- (UILabel *)messageLabel {
- (YYLabel *)messageLabel {
if (!_messageLabel) {
_messageLabel = [[UILabel alloc] initWithFrame:CGRectZero];
_messageLabel = [[YYLabel alloc] initWithFrame:CGRectZero];
_messageLabel.backgroundColor = [UIColor clearColor];
_messageLabel.font = [UIFont systemFontOfSize:13.f];
_messageLabel.textColor = DJDKMIMOMColor.secondTextColor;

View File

@@ -1,20 +1,18 @@
//
// SessionListViewController.m
// YUMI
// xplan-ios
//
// Created by zu on 2021/11/25.
//
#import "SessionListViewController.h"
#import "SessionListCell.h"
#import "SessionDiscoverNewTableViewCell.h"
#import "SessionViewController.h"
#import "DJDKMIMOMColor.h"
#import "YUMIMacroUitls.h"
#import "ClientConfig.h"
#import "Api+Mine.h"
#import "AccountInfoStorage.h"
#import "NSArray+Safe.h"
#import "NSMutableDictionary+Saft.h"
///Model
#import "UserInfoModel.h"
///View
@@ -27,8 +25,9 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
#import <Masonry/Masonry.h>
@interface SessionListViewController ()<UITableViewDataSource, UITableViewDelegate, NIMLoginManagerDelegate, NIMConversationManagerDelegate>
//@property (nonatomic,strong) UIView *customNavigationBar;
//
//@property (nonatomic,strong) UILabel *titleLabel;
//
//@property (nonatomic, strong) UIButton *allReadButton;
@@ -46,441 +45,383 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
///
@property (nonatomic,strong) UserInfoModel *userInfo;
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
///
@property (nonatomic,strong) NSMutableDictionary<NIMSession *, NIMStickTopSessionInfo *> *stickTopMessages;
@end
@implementation SessionListViewController
- (void)dealloc {
[[NIMSDK sharedSDK].conversationManager removeDelegate:self];
[[NIMSDK sharedSDK].loginManager removeDelegate:self];
[[NSNotificationCenter defaultCenter]removeObserver:self];
[[NIMSDK sharedSDK].conversationManager removeDelegate:self];
[[NIMSDK sharedSDK].loginManager removeDelegate:self];
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
- (BOOL)isHiddenNavBar {
return YES;
}
- (instancetype)initWithType:(SessionListOpenType)type {
self = [self init];
if (self) {
_openType = type;
}
return self;
self = [self init];
if (self) {
_openType = type;
}
return self;
}
- (instancetype)init {
self = [super init];
if (self) {
_openType = SessionListOpenTypeDefault;
[self initDatas];
[[NIMSDK sharedSDK].conversationManager addDelegate:self];
[[NIMSDK sharedSDK].loginManager addDelegate:self];
///
[[NIMSDKConfig sharedConfig] setShouldSyncStickTopSessionInfos:YES];
}
return self;
self = [super init];
if (self) {
_openType = SessionListOpenTypeDefault;
[self initDatas];
[[NIMSDK sharedSDK].conversationManager addDelegate:self];
[[NIMSDK sharedSDK].loginManager addDelegate:self];
///
[[NIMSDKConfig sharedConfig] setShouldSyncStickTopSessionInfos:YES];
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self getUserInfo];
[self initViews];
[self initLayout];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(allReadButtonClick) name:@"kAllReadAction" object:nil];
[super viewDidLoad];
[self getUserInfo];
[self initViews];
[self initLayout];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(allReadButtonClick) name:@"kAllReadAction" object:nil];
}
- (void)getUserInfo {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api getUserInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
UserInfoModel * userInfo = [UserInfoModel modelWithDictionary:data.data];
self.userInfo = userInfo;
[self.sessionListView reloadData];
}
} uid:uid];
NSString * uid = [AccountInfoStorage instance].getUid;
[Api getUserInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
UserInfoModel * userInfo = [UserInfoModel modelWithDictionary:data.data];
self.userInfo = userInfo;
[self.sessionListView reloadData];
}
} uid:uid];
}
- (void)initViews {
self.view.backgroundColor = [UIColor clearColor];
[self.view addSubview:self.sessionListView];
// self.title = @"消息";
self.view.backgroundColor = [UIColor clearColor];
if (self.openType == SessionListOpenTypeDefault) {
// [self.customNavigationBar addSubview:self.titleLabel];
// [self.view addSubview:self.customNavigationBar];
// [self.customNavigationBar addSubview:self.allReadButton];
}
[self.view addSubview:self.sessionListView];
}
- (void)initLayout {
[self.sessionListView mas_makeConstraints:^(MASConstraintMaker *make) {
if (self.openType == SessionListOpenTypeDefault) {
// [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
// make.center.mas_equalTo(self.customNavigationBar);
// }];
// [self.allReadButton mas_makeConstraints:^(MASConstraintMaker *make) {
// make.right.mas_equalTo(-16);
// make.width.height.mas_equalTo(30);
// make.centerY.mas_equalTo(self.customNavigationBar);
// }];
}
[self.sessionListView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.mas_equalTo(self.view);
if (self.openType == SessionListOpenTypeDefault) {
make.top.mas_equalTo(self.view);
} else {
make.top.mas_equalTo(self.view);
}
}];
}];
}
- (void)initDatas {
[self.recentSessions removeAllObjects];
_recentSessions = [[NIMSDK sharedSDK].conversationManager.allRecentSessions mutableCopy];
__block int unreadCount = 0;
NSMutableArray<NSString *> * uids = [[NSMutableArray alloc] init];
[self.recentSessions enumerateObjectsUsingBlock:^(NIMRecentSession * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[uids addObject:obj.session.sessionId];
unreadCount += obj.unreadCount;
}];
[[NIMSDK sharedSDK].userManager fetchUserInfos:uids completion:nil];
NIMLoadRecentSessionsOptions *options = [[NIMLoadRecentSessionsOptions alloc] init];
options.sortByStickTopInfos = YES;
[NIMSDK.sharedSDK.chatExtendManager loadRecentSessionsWithOptions:options completion:^(NSError * _Nullable error, NSArray<NIMRecentSession *> * _Nullable recentSessions) {
if (error) {
// handle error
return;
}
}];
@kWeakify(self);
//
[self.recentSessions enumerateObjectsUsingBlock:^(NIMRecentSession * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
@kStrongify(self);
if (![[ClientConfig shareConfig].configInfo.officialMsgUids containsObject:obj.session.sessionId]) {
if (obj.lastMessage.messageType == NIMMessageTypeTip) {
if ([obj.lastMessage.localExt[@"isServer"] boolValue] == YES) {
[self.recentSessions removeObject:obj];
[uids removeObject:obj.session.sessionId];
unreadCount -= obj.unreadCount;
NIMDeleteRecentSessionOption *option = [[NIMDeleteRecentSessionOption alloc] init];
option.isDeleteRoamMessage = YES;
option.shouldMarkAllMessagesReadInSessions = YES;
[[NIMSDK sharedSDK].conversationManager deleteRecentSession:obj option:option completion:^(NSError * _Nullable error) {
}];
}
}
}
}];
[self setTabBarItemBadge:unreadCount];
[[NIMSDK sharedSDK].userManager fetchUserInfos:uids completion:nil];
[[NIMSDK sharedSDK].chatExtendManager loadStickTopSessionInfos:^(NSError * _Nullable error, NSDictionary<NIMSession *,NIMStickTopSessionInfo *> * _Nullable infos) {
if (error == nil) {
self.stickTopMessages = [infos mutableCopy];
[self sortSessionList];
}
}];
NIMLoadRecentSessionsOptions *options1 = [[NIMLoadRecentSessionsOptions alloc] init];
options1.sortByStickTopInfos = YES;
[NIMSDK.sharedSDK.chatExtendManager loadRecentSessionsWithOptions:options1 completion:^(NSError * _Nullable error, NSArray<NIMRecentSession *> * _Nullable recentSessions) {
if (error) {
// handle error
return;
}
}];
[self.recentSessions removeAllObjects];
_recentSessions = [[NIMSDK sharedSDK].conversationManager.allRecentSessions mutableCopy];
__block int unreadCount = 0;
NSMutableArray<NSString *> * uids = [[NSMutableArray alloc] init];
[self.recentSessions enumerateObjectsUsingBlock:^(NIMRecentSession * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[uids addObject:obj.session.sessionId];
unreadCount += obj.unreadCount;
}];
[self setTabBarItemBadge:unreadCount];
[[NIMSDK sharedSDK].userManager fetchUserInfos:uids completion:nil];
NIMLoadRecentSessionsOptions *options = [[NIMLoadRecentSessionsOptions alloc] init];
options.sortByStickTopInfos = YES;
[NIMSDK.sharedSDK.chatExtendManager loadRecentSessionsWithOptions:options completion:^(NSError * _Nullable error, NSArray<NIMRecentSession *> * _Nullable recentSessions) {
if (error) {
// handle error
return;
}
}];
}
#pragma mark - UITableViewDelegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.openType == SessionListOpenTypeRoom) {
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
SessionViewController * sessionVC =[[SessionViewController alloc] initWithSession:recentSession.session];
sessionVC.stickTopMessages = self.stickTopMessages;
sessionVC.openType = self.openType;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController.view addSubview:sessionVC.view];
[self.mainController addChildViewController:sessionVC];
} else {
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
SessionViewController *vc = [[SessionViewController alloc] initWithSession:recentSession.session];
vc.stickTopMessages = self.stickTopMessages;
vc.openType = self.openType;
[self.navigationController pushViewController:vc animated:YES];
}
if (indexPath.section == 0) {
SessionDiscoverNewTableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
cell.hiddenDotView = YES;
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kMessageShowReadDotKey];
XPSessionFindNewViewController * findNewVC = [[XPSessionFindNewViewController alloc] init];
[self.navigationController pushViewController:findNewVC animated:YES];
return;
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.openType == SessionListOpenTypeRoom) {
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
SessionViewController * sessionVC =[[SessionViewController alloc] initWithSession:recentSession.session];
sessionVC.openType = self.openType;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController.view addSubview:sessionVC.view];
[self.mainController addChildViewController:sessionVC];
} else {
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
SessionViewController *vc = [[SessionViewController alloc] initWithSession:recentSession.session];
vc.openType = self.openType;
[self.navigationController pushViewController:vc animated:YES];
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 70.f;
return 70.f;
}
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
if (indexPath.section == 0) {
return NO;
}
return YES;
}
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
NIMRecentSession * session = [self.recentSessions safeObjectAtIndex1:indexPath.row];
UITableViewRowAction * deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"SessionListViewController0") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
NIMRecentSession * session = [self.recentSessions safeObjectAtIndex1:indexPath.row];
[[NIMSDK sharedSDK].conversationManager deleteRecentSession:session];
}];
deleteAction.title = YMLocalizedString(@"SessionListViewController1");
deleteAction.backgroundColor = [UIColor redColor];
NIMStickTopSessionInfo * topInfo = [self.stickTopMessages objectForKey:session.session];
if (topInfo.session.sessionId.length > 0) {
UITableViewRowAction * topAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"SessionListViewController6") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
[[NIMSDK sharedSDK].chatExtendManager removeStickTopSession:topInfo completion:^(NSError * _Nullable error, NIMStickTopSessionInfo * _Nullable removedInfo) {
if (error == nil) {
[self.stickTopMessages removeObjectForKey:session.session];
[self sortSessionList];
[self.sessionListView reloadData];
}
}];
}];
topAction.title = YMLocalizedString(@"SessionListViewController7");
topAction.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#4C94FF"];
return @[deleteAction, topAction];
} else {
UITableViewRowAction * topAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"SessionListViewController6") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
NIMAddStickTopSessionParams * params = [[NIMAddStickTopSessionParams alloc] initWithSession:session.session];
[[NIMSDK sharedSDK].chatExtendManager addStickTopSession:params completion:^(NSError * _Nullable error, NIMStickTopSessionInfo * _Nullable newInfo) {
if (error == nil) {
[self.stickTopMessages safeSetObject:newInfo forKey:session.session];
[self sortSessionList];
[self.sessionListView reloadData];
}
}];
}];
topAction.title = YMLocalizedString(@"SessionListViewController6");
topAction.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#4C94FF"];
return @[deleteAction, topAction];
}
UITableViewRowAction * deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"SessionListViewController0") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
NIMRecentSession * session = [self.recentSessions safeObjectAtIndex1:indexPath.row];
[[NIMSDK sharedSDK].conversationManager deleteRecentSession:session];
}];
deleteAction.title = YMLocalizedString(@"SessionListViewController1");
deleteAction.backgroundColor = [UIColor redColor];
return @[deleteAction];
}
#pragma mark - UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.recentSessions.count;
if (section == 0) {
// return [ClientConfig shareConfig].configInfo.findNewbieCharmLevel <= self.userInfo.userLevelVo.experLevelSeq ? 1 : 0;
return 0;
}
return self.recentSessions.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString * cellId = @"cellId";
SessionListCell * cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[SessionListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
}
NIMRecentSession *recent = self.recentSessions[indexPath.row];
cell.stickTopMessages = self.stickTopMessages;
[cell renderWithSession:recent];
return cell;
if (indexPath.section == 0) {
SessionDiscoverNewTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([SessionDiscoverNewTableViewCell class])];
if (cell == nil) {
cell = [[SessionDiscoverNewTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([SessionDiscoverNewTableViewCell class])];
}
BOOL hidden = [[NSUserDefaults standardUserDefaults] boolForKey:kMessageShowReadDotKey];
cell.hiddenDotView = hidden;
return cell;
}
static NSString * cellId = @"cellId";
SessionListCell * cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[SessionListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
}
NIMRecentSession *recent = self.recentSessions[indexPath.row];
[cell renderWithSession:recent];
return cell;
}
#pragma mark - NIMConversationManagerDelegate
- (void)didLoadAllRecentSessionCompletion {
[self initDatas];
[self.sessionListView reloadData];
[self initDatas];
[self.sessionListView reloadData];
}
- (void)didAddRecentSession:(NIMRecentSession *)recentSession
totalUnreadCount:(NSInteger)totalUnreadCount {
[self.recentSessions addObject:recentSession];
[self.recentSessions sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NIMRecentSession *item1 = obj1;
NIMRecentSession *item2 = obj2;
if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) {
return NSOrderedDescending;
}
if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) {
return NSOrderedAscending;
}
return NSOrderedSame;
}];
[self.sessionListView reloadData];
[self setTabBarItemBadge:totalUnreadCount];
totalUnreadCount:(NSInteger)totalUnreadCount {
[self.recentSessions addObject:recentSession];
[self.recentSessions sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NIMRecentSession *item1 = obj1;
NIMRecentSession *item2 = obj2;
if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) {
return NSOrderedDescending;
}
if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) {
return NSOrderedAscending;
}
return NSOrderedSame;
}];
[self.sessionListView reloadData];
[self setTabBarItemBadge:totalUnreadCount];
}
- (void)didUpdateRecentSession:(NIMRecentSession *)recentSession
totalUnreadCount:(NSInteger)totalUnreadCount {
for (NIMRecentSession *recent in self.recentSessions) {
if ([recentSession.session.sessionId isEqualToString:recent.session.sessionId]) {
[self.recentSessions removeObject:recent];
break;
}
}
NSInteger insert = [self findInsertPlace:recentSession];
[self.recentSessions insertObject:recentSession atIndex:insert];
[self.sessionListView reloadData];
[self setTabBarItemBadge:totalUnreadCount];
totalUnreadCount:(NSInteger)totalUnreadCount {
for (NIMRecentSession *recent in self.recentSessions) {
if ([recentSession.session.sessionId isEqualToString:recent.session.sessionId]) {
[self.recentSessions removeObject:recent];
break;
}
}
NSInteger insert = [self findInsertPlace:recentSession];
[self.recentSessions insertObject:recentSession atIndex:insert];
[self.sessionListView reloadData];
[self setTabBarItemBadge:totalUnreadCount];
}
- (void)didRemoveRecentSession:(NIMRecentSession *)recentSession
totalUnreadCount:(NSInteger)totalUnreadCount {
//
NSUInteger index = [self.recentSessions indexOfObject:recentSession];
[self.recentSessions removeObjectAtIndex:index];
//
BOOL deleteRemote = NO;
if (deleteRemote) {
[[NIMSDK sharedSDK].conversationManager deleteRemoteSessions:@[recentSession.session]
completion:nil];
}
[self.sessionListView reloadData];
[self setTabBarItemBadge:totalUnreadCount];
totalUnreadCount:(NSInteger)totalUnreadCount {
//
NSUInteger index = [self.recentSessions indexOfObject:recentSession];
[self.recentSessions removeObjectAtIndex:index];
//
BOOL deleteRemote = NO;
if (deleteRemote) {
[[NIMSDK sharedSDK].conversationManager deleteRemoteSessions:@[recentSession.session]
completion:nil];
}
[self.sessionListView reloadData];
[self setTabBarItemBadge:totalUnreadCount];
}
#pragma mark - NIMLoginManagerDelegate
- (void)onLogin:(NIMLoginStep)step {
if (step == NIMLoginStepSyncOK) {
[self initDatas];
}
if (step == NIMLoginStepSyncOK) {
[self initDatas];
}
}
#pragma mark - JXCategoryListContentViewDelegate
- (UIView *)listView {
return self.view;
return self.view;
}
- (UIScrollView *)listScrollView {
return self.sessionListView;
return self.sessionListView;
}
- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback {
self.scrollCallback = callback;
self.scrollCallback = callback;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (self.scrollCallback){
self.scrollCallback(scrollView);
}
if (self.scrollCallback){
self.scrollCallback(scrollView);
}
}
#pragma mark - Private
- (NSInteger)findInsertPlace:(NIMRecentSession *)recentSession{
__block NSUInteger matchIdx = 0;
__block BOOL find = NO;
[self.recentSessions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NIMRecentSession *item = obj;
if (item.lastMessage.timestamp <= recentSession.lastMessage.timestamp) {
*stop = YES;
find = YES;
matchIdx = idx;
}
}];
if (find) {
return matchIdx;
} else {
return self.recentSessions.count;
}
__block NSUInteger matchIdx = 0;
__block BOOL find = NO;
[self.recentSessions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NIMRecentSession *item = obj;
if (item.lastMessage.timestamp <= recentSession.lastMessage.timestamp) {
*stop = YES;
find = YES;
matchIdx = idx;
}
}];
if (find) {
return matchIdx;
} else {
return self.recentSessions.count;
}
}
- (void)sort{
[self.recentSessions sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NIMRecentSession *item1 = obj1;
NIMRecentSession *item2 = obj2;
if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) {
return NSOrderedDescending;
}
if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) {
return NSOrderedAscending;
}
return NSOrderedSame;
}];
[self.recentSessions sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NIMRecentSession *item1 = obj1;
NIMRecentSession *item2 = obj2;
if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) {
return NSOrderedDescending;
}
if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) {
return NSOrderedAscending;
}
return NSOrderedSame;
}];
}
- (void)setTabBarItemBadge:(NSInteger)value {
[[NSNotificationCenter defaultCenter]postNotificationName:@"kGetTabBarItemBadge" object:nil userInfo:@{@"BadgeValue":@(value)}];
[[NSNotificationCenter defaultCenter]postNotificationName:@"kGetTabBarItemBadge" object:nil userInfo:@{@"BadgeValue":@(value)}];
}
-(void)sortSessionList {
NSMutableArray * recentList = [self.recentSessions mutableCopy];
[self.recentSessions removeAllObjects];
NSMutableArray * topList = [NSMutableArray array];
NSMutableArray * normalList = [NSMutableArray array];
for (int i = 0 ; i < recentList.count; i++) {
NIMRecentSession * recentSession = [recentList safeObjectAtIndex1:i];
NIMStickTopSessionInfo * topInfo = [self.stickTopMessages objectForKey:recentSession.session];
if (topInfo && topInfo.session.sessionId > 0) {
[topList addObject:recentSession];
} else {
[normalList addObject:recentSession];
}
}
if (topList.count > 0) {
[self sortArray:topList];
}
if (normalList.count > 0) {
[self sortArray:normalList];
}
[self.recentSessions addObjectsFromArray:topList];
[self.recentSessions addObjectsFromArray:normalList];
[self.sessionListView reloadData];
}
- (void)sortArray:(NSMutableArray *)arry {
[arry sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NIMRecentSession *item1 = obj1;
NIMRecentSession *item2 = obj2;
if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) {
return NSOrderedDescending;
}
if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) {
return NSOrderedAscending;
}
return NSOrderedSame;
}];
}
#pragma mark - action
- (void)allReadButtonClick {
NSInteger count = [NIMSDK sharedSDK].conversationManager.allUnreadCount;
if (count<1) {
[self showErrorToast:YMLocalizedString(@"SessionListViewController2")];
return;
}
TTAlertConfig * config = [[TTAlertConfig alloc] init];
config.confirmButtonConfig.title = YMLocalizedString(@"SessionListViewController3");
config.message = YMLocalizedString(@"SessionListViewController4");
[TTPopup alertWithConfig:config confirmHandler:^{
[[NIMSDK sharedSDK].conversationManager markAllMessagesRead];
[self setTabBarItemBadge:0];
[self.sessionListView reloadData];
} cancelHandler:^{
}];
NSInteger count = [NIMSDK sharedSDK].conversationManager.allUnreadCount;
if (count<1) {
[self showErrorToast:YMLocalizedString(@"SessionListViewController2")];
return;
}
TTAlertConfig * config = [[TTAlertConfig alloc] init];
config.confirmButtonConfig.title = YMLocalizedString(@"SessionListViewController3");
config.message =YMLocalizedString(@"SessionListViewController4");
[TTPopup alertWithConfig:config confirmHandler:^{
[[NIMSDK sharedSDK].conversationManager markAllMessagesRead];
[self setTabBarItemBadge:0];
[self.sessionListView reloadData];
} cancelHandler:^{
}];
}
//- (UIView *)customNavigationBar {
// if (!_customNavigationBar) {
// CGRect frame = CGRectMake(0, kStatusBarHeight, KScreenWidth, 44);
// _customNavigationBar = [[UIView alloc]initWithFrame:frame];
// }
// return _customNavigationBar;
//}
//- (UILabel *)titleLabel {
// if (!_titleLabel) {
// _titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
// _titleLabel.backgroundColor = [UIColor clearColor];
// _titleLabel.font = [UIFont systemFontOfSize:18.f weight:UIFontWeightMedium];
// _titleLabel.textColor = ThemeColor.mainTextColor;
// _titleLabel.text = @"消息";
// }
// return _titleLabel;
//}
- (UITableView *)sessionListView {
if (!_sessionListView) {
_sessionListView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_sessionListView.separatorStyle = UITableViewCellSeparatorStyleNone;
_sessionListView.backgroundColor = UIColor.clearColor;
_sessionListView.delegate = self;
_sessionListView.dataSource = self;
_sessionListView.showsVerticalScrollIndicator = NO;
}
return _sessionListView;
if (!_sessionListView) {
_sessionListView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_sessionListView.separatorStyle = UITableViewCellSeparatorStyleNone;
_sessionListView.backgroundColor = UIColor.clearColor;
_sessionListView.delegate = self;
_sessionListView.dataSource = self;
_sessionListView.showsVerticalScrollIndicator = NO;
}
return _sessionListView;
}
- (NSMutableArray<NIMRecentSession *> *)recentSessions {
if (!_recentSessions) {
_recentSessions = [NSMutableArray array];
}
return _recentSessions;
if (!_recentSessions) {
_recentSessions = [NSMutableArray array];
}
return _recentSessions;
}
- (NSMutableDictionary<NIMSession *,NIMStickTopSessionInfo *> *)stickTopMessages {
if (!_stickTopMessages) {
_stickTopMessages = [NSMutableDictionary dictionary];
}
return _stickTopMessages;
}
//- (UIButton *)allReadButton {
// if (!_allReadButton) {
// _allReadButton = [[UIButton alloc] init];
// [_allReadButton setImage:[UIImage imageNamed:@"sessionList_clear"] forState:UIControlStateNormal];
// [_allReadButton addTarget:self action:@selector(allReadButtonClick:) forControlEvents:UIControlEventTouchUpInside];
// }
// return _allReadButton;
//}
@end

View File

@@ -115,7 +115,7 @@
[Api completeUserInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data];
[[self getView] completeUserInfoSuccess:infoModel];
}] userInfo:dic];
}showLoading:YES] userInfo:dic];
}

View File

@@ -1,8 +1,8 @@
//
// YMMineAttentionTableViewCell.m
// YUMI
// XPMineAttentionTableViewCell.m
// xplan-ios
//
// Created by YUMI on 2021/12/21.
// Created by on 2021/12/21.
//
#import "XPMineAttentionTableViewCell.h"
@@ -10,7 +10,6 @@
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
#import "DJDKMIMOMColor.h"
#import "UIImage+Utils.h"
///Model
#import "FansInfoModel.h"
@@ -34,157 +33,160 @@
@property (nonatomic,strong) UILabel *signLabel;
///
@property (nonatomic,strong) UIButton *findButton;
///线
@property (nonatomic,strong) UIView *lineView;
@end
@implementation XPMineAttentionTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.avatarImageView];
[self.contentView addSubview:self.stackView];
[self.contentView addSubview:self.signLabel];
[self.contentView addSubview:self.findButton];
[self.contentView addSubview:self.lineView];
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.avatarImageView];
[self.contentView addSubview:self.stackView];
[self.contentView addSubview:self.signLabel];
[self.contentView addSubview:self.findButton];
[self.stackView addArrangedSubview:self.nobleImageView];
[self.stackView addArrangedSubview:self.nickLabel];
[self.stackView addArrangedSubview:self.sexImageView];
[self.stackView addArrangedSubview:self.experImageView];
[self.stackView addArrangedSubview:self.charmImageView];
}
- (void)initSubViewConstraints {
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(55, 55));
make.centerY.mas_equalTo(self.contentView);
make.left.mas_equalTo(self.contentView).offset(15);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(10);
make.right.mas_lessThanOrEqualTo(self.findButton.mas_left).mas_offset(-4);
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-2);
}];
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.stackView);
make.top.mas_equalTo(self.avatarImageView.mas_centerY).offset(2);
make.right.mas_equalTo(self.findButton.mas_left).mas_offset(-4);
}];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake((50), (50)));
make.centerY.mas_equalTo(self.contentView);
make.left.mas_equalTo(self.contentView).offset((15));
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.avatarImageView.mas_right).offset((10));
make.right.mas_lessThanOrEqualTo(self.findButton.mas_left).mas_offset(-(10));
make.height.mas_equalTo(((20)));
make.top.equalTo(self.avatarImageView.mas_top).mas_offset((3));
}];
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(28);
make.height.mas_equalTo(14);
}];
[self.findButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(65);
make.height.mas_equalTo(30);
make.centerY.mas_equalTo(self.contentView);
make.right.mas_equalTo(self.contentView).offset(-15);
}];
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.stackView);
make.bottom.mas_equalTo(self.contentView);
make.height.mas_equalTo(1);
make.right.mas_equalTo(self.contentView).offset(-15);
}];
// [self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
// make.width.mas_lessThanOrEqualTo((100));
// }];
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.stackView);
make.top.equalTo(self.stackView.mas_bottom).mas_offset((7));
make.right.mas_equalTo(self.findButton.mas_left).mas_offset(-(10));
}];
[self.findButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo((68));
make.height.mas_equalTo((30));
make.centerY.mas_equalTo(self.contentView);
make.right.mas_equalTo(self.contentView).offset(-(15));
}];
}
#pragma mark - Event Response
- (void)findButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineAttentionTableViewCell:findUser:)]) {
[self.delegate xPMineAttentionTableViewCell:self findUser:self.fansInfo.userInRoomUid];
}
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineAttentionTableViewCell:findUser:)]) {
[self.delegate xPMineAttentionTableViewCell:self findUser:self.fansInfo.userInRoomUid];
}
}
#pragma mark - Getters And Setters
- (void)setFansInfo:(FansInfoModel *)fansInfo {
_fansInfo = fansInfo;
if (_fansInfo) {
self.avatarImageView.imageUrl = _fansInfo.avatar;
NSString *text = _fansInfo.nick.length > 6 ? [NSString stringWithFormat:@"%@...",[_fansInfo.nick substringToIndex:6]]:_fansInfo.nick;
self.nickLabel.text = text;
self.signLabel.text = _fansInfo.userDesc && _fansInfo.userDesc.length > 0? _fansInfo.userDesc : YMLocalizedString(@"XPMineAttentionTableViewCell0");
if (_fansInfo.useingType != ContactUseingType_In_Room && _fansInfo.useingType != ContactUseingType_Share) {
self.experImageView.hidden = NO;
self.charmImageView.hidden = NO;
self.nobleImageView.hidden = NO;
self.sexImageView.hidden = NO;
self.experImageView.imageUrl = _fansInfo.experUrl;
self.charmImageView.imageUrl = _fansInfo.charmUrl;
self.nobleImageView.imageUrl = _fansInfo.userVipInfoVO.vipIcon;
_fansInfo = fansInfo;
if (_fansInfo) {
self.avatarImageView.imageUrl = _fansInfo.avatar;
self.nickLabel.text = _fansInfo.nick;
self.signLabel.text = _fansInfo.userDesc && _fansInfo.userDesc.length > 0? _fansInfo.userDesc : YMLocalizedString(@"XPMineAttentionTableViewCell0");
if (_fansInfo.useingType != ContactUseingType_In_Room && _fansInfo.useingType != ContactUseingType_Share) {
self.experImageView.hidden = NO;
self.charmImageView.hidden = NO;
if (_fansInfo.userVipInfoVO.vipIcon != nil) {
self.nobleImageView.hidden = NO;
}else{
self.nobleImageView.hidden = YES;
}
self.sexImageView.hidden = NO;
self.experImageView.imageUrl = _fansInfo.experUrl;
self.charmImageView.imageUrl = _fansInfo.charmUrl;
self.nobleImageView.imageUrl = _fansInfo.userVipInfoVO.vipIcon;
[self.sexImageView setTitle:[NSString getAgeWithBirth:_fansInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _fansInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.findButton.hidden = _fansInfo.userInRoomUid.length <= 0;
UIImage* image = self.experImageView.image;
if (image) {
CGFloat scale = image.size.width / image.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.experUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
UIImage* charmImage = self.charmImageView.image;
if (charmImage) {
CGFloat scale = charmImage.size.width / charmImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.charmUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
UIImage *nobleImage = self.nobleImageView.image;
if (nobleImage) {
CGFloat scale = nobleImage.size.width / nobleImage.size.height;
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(0, 20));
}];
}
if (fansInfo.userVipInfoVO && fansInfo.userVipInfoVO.friendNickColour) {
self.nickLabel.textColor = [self colorWithHexString:fansInfo.userVipInfoVO.friendNickColour];
} else {
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
} else {
self.experImageView.hidden = YES;
self.charmImageView.hidden = YES;
self.nobleImageView.hidden = YES;
self.sexImageView.hidden = YES;
self.findButton.hidden = YES;
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
}
self.sexImageView.selected = _fansInfo.gender != GenderType_Male;
self.findButton.hidden = _fansInfo.userInRoomUid.length <= 0;
UIImage* image = self.experImageView.image;
if (image) {
CGFloat scale = image.size.width / image.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.experUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
UIImage* charmImage = self.charmImageView.image;
if (charmImage) {
CGFloat scale = charmImage.size.width / charmImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.charmUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
UIImage *nobleImage = self.nobleImageView.image;
if (nobleImage) {
CGFloat scale = nobleImage.size.width / nobleImage.size.height;
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(0, 20));
}];
}
if (fansInfo.userVipInfoVO && fansInfo.userVipInfoVO.friendNickColour) {
self.nickLabel.textColor = [self colorWithHexString:fansInfo.userVipInfoVO.friendNickColour];
} else {
self.nickLabel.textColor = [DJDKMIMOMColor inputTextColor];
}
} else {
self.experImageView.hidden = YES;
self.charmImageView.hidden = YES;
self.nobleImageView.hidden = YES;
self.sexImageView.hidden = YES;
self.findButton.hidden = YES;
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
}
}
- (UIColor *)colorWithHexString: (NSString *) hexString {
@@ -206,40 +208,40 @@
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 55/2;
}
return _avatarImageView;
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = (50.0/2);
}
return _avatarImageView;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentCenter;
_stackView.spacing = 2;
}
return _stackView;
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentCenter;
_stackView.spacing = (4);
}
return _stackView;
}
- (UILabel *)nickLabel {
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.font = [UIFont systemFontOfSize:15];
_nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
return _nickLabel;
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.font = kFontMedium(15);
_nickLabel.textColor = [DJDKMIMOMColor inputTextColor];
}
return _nickLabel;
}
- (UIButton *)sexImageView {
if (!_sexImageView) {
_sexImageView = [[UIButton alloc] init];
if (!_sexImageView) {
_sexImageView = [[UIButton alloc] init];
[_sexImageView setImage:kImage(@"home_age_boy_icon") forState:UIControlStateNormal];
[_sexImageView setImage:kImage(@"home_age_girl_icon") forState:UIControlStateSelected];
_sexImageView.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
@@ -247,30 +249,30 @@
_sexImageView.imageEdgeInsets = UIEdgeInsetsMake(0, 2, 0, 0);
_sexImageView.layer.cornerRadius = 14/2;
_sexImageView.layer.masksToBounds = YES;
}
return _sexImageView;
}
return _sexImageView;
}
- (NetImageView *)experImageView {
if (!_experImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_experImageView = [[NetImageView alloc] initWithConfig:config];
_experImageView.layer.maskedCorners = YES;
_experImageView.contentMode = UIViewContentModeScaleAspectFit;
}
return _experImageView;
if (!_experImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_experImageView = [[NetImageView alloc] initWithConfig:config];
_experImageView.layer.maskedCorners = YES;
_experImageView.contentMode = UIViewContentModeScaleAspectFit;
}
return _experImageView;
}
- (NetImageView *)charmImageView {
if (!_charmImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_charmImageView = [[NetImageView alloc] initWithConfig:config];
_charmImageView.layer.maskedCorners = YES;
_charmImageView.contentMode = UIViewContentModeScaleAspectFit;
}
return _charmImageView;
if (!_charmImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_charmImageView = [[NetImageView alloc] initWithConfig:config];
_charmImageView.layer.maskedCorners = YES;
_charmImageView.contentMode = UIViewContentModeScaleAspectFit;
}
return _charmImageView;
}
- (NetImageView *)nobleImageView {
@@ -281,36 +283,30 @@
}
- (UILabel *)signLabel{
if (!_signLabel) {
_signLabel = [[UILabel alloc] init];
_signLabel.textColor = [DJDKMIMOMColor secondTextColor];
_signLabel.font = [UIFont systemFontOfSize:12];
}
return _signLabel;
if (!_signLabel) {
_signLabel = [[UILabel alloc] init];
_signLabel.textColor = [DJDKMIMOMColor disableButtonTextColor];
_signLabel.font = kFontMedium(12);
}
return _signLabel;
}
- (UIButton *)findButton {
if (!_findButton) {
_findButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_findButton setTitle:YMLocalizedString(@"XPMineAttentionTableViewCell1") forState:UIControlStateNormal];
[_findButton setTitleColor:[DJDKMIMOMColor appEmphasizeColor] forState:UIControlStateNormal];
_findButton.titleLabel.font = [UIFont systemFontOfSize:12];
_findButton.layer.masksToBounds = YES;
_findButton.layer.cornerRadius = 15;
_findButton.layer.borderColor = [DJDKMIMOMColor appEmphasizeColor].CGColor;
_findButton.layer.borderWidth = 1;
_findButton.hidden = YES;
[_findButton addTarget:self action:@selector(findButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _findButton;
if (!_findButton) {
_findButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_findButton setTitle:YMLocalizedString(@"XPMineAttentionTableViewCell1") forState:UIControlStateNormal];
[_findButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
UIImage *image = [UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor],[DJDKMIMOMColor confirmButtonGradientMiddleColor],[DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake((68), (30))];
[_findButton setBackgroundImage:image forState:UIControlStateNormal];
_findButton.titleLabel.font = kFontMedium(14);
_findButton.layer.masksToBounds = YES;
_findButton.layer.cornerRadius = (15);
_findButton.hidden = YES;
[_findButton addTarget:self action:@selector(findButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _findButton;
}
- (UIView *)lineView {
if (!_lineView) {
_lineView = [[UIView alloc] init];
_lineView.backgroundColor = [DJDKMIMOMColor dividerColor];
}
return _lineView;
}
@end

View File

@@ -1,8 +1,8 @@
//
// YMMineFansTableViewCell.m
// YUMI
// XPMineFansTableViewCell.m
// xplan-ios
//
// Created by YUMI on 2021/12/21.
// Created by on 2021/12/21.
//
#import "XPMineFansTableViewCell.h"
@@ -11,7 +11,6 @@
#import <NIMSDK/NIMSDK.h>
///Tool
#import "NetImageView.h"
#import "DJDKMIMOMColor.h"
#import "UIImage+Utils.h"
///Model
#import "FansInfoModel.h"
@@ -35,163 +34,167 @@
@property (nonatomic,strong) UILabel *signLabel;
///
@property (nonatomic,strong) UIButton *attentionButton;
///线
@property (nonatomic,strong) UIView * lineView;
@end
@implementation XPMineFansTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.avatarImageView];
[self.contentView addSubview:self.stackView];
[self.contentView addSubview:self.signLabel];
[self.contentView addSubview:self.attentionButton];
[self.contentView addSubview:self.lineView];
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.avatarImageView];
[self.contentView addSubview:self.stackView];
[self.contentView addSubview:self.signLabel];
[self.contentView addSubview:self.attentionButton];
[self.stackView addArrangedSubview:self.nobleImageView];
[self.stackView addArrangedSubview:self.nickLabel];
[self.stackView addArrangedSubview:self.sexImageView];
[self.stackView addArrangedSubview:self.experImageView];
[self.stackView addArrangedSubview:self.charmImageView];
[self.stackView addArrangedSubview:self.nickLabel];
[self.stackView addArrangedSubview:self.sexImageView];
[self.stackView addArrangedSubview:self.experImageView];
[self.stackView addArrangedSubview:self.charmImageView];
}
- (void)initSubViewConstraints {
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(55, 55));
make.centerY.mas_equalTo(self.contentView);
make.left.mas_equalTo(self.contentView).offset(15);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(10);
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-2);
make.right.mas_lessThanOrEqualTo(self.attentionButton.mas_left).mas_offset(-4);
}];
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.stackView);
make.top.mas_equalTo(self.avatarImageView.mas_centerY).offset(2);
make.right.mas_equalTo(self.attentionButton.mas_left).mas_offset(-4);
}];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake((50), (50)));
make.centerY.mas_equalTo(self.contentView);
make.left.mas_equalTo(self.contentView).offset((15));
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.avatarImageView.mas_right).offset((10));
make.right.mas_lessThanOrEqualTo(self.attentionButton.mas_left).mas_offset(-(10));
make.height.mas_equalTo(((20)));
make.top.equalTo(self.avatarImageView.mas_top).mas_offset((3));
}];
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(28);
make.height.mas_equalTo(14);
}];
[self.attentionButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(65);
make.height.mas_equalTo(30);
make.centerY.mas_equalTo(self.contentView);
make.right.mas_equalTo(self.contentView).offset(-15);
}];
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.stackView);
make.bottom.mas_equalTo(self.contentView);
make.height.mas_equalTo(1);
make.right.mas_equalTo(self.contentView).offset(-15);
}];
// [self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
// make.width.mas_lessThanOrEqualTo((100));
// }];
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.stackView);
make.top.equalTo(self.stackView.mas_bottom).mas_offset((7));
make.right.mas_equalTo(self.attentionButton.mas_left).mas_offset(-(10));
}];
[self.attentionButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo((68));
make.height.mas_equalTo((30));
make.centerY.mas_equalTo(self.contentView);
make.right.mas_equalTo(self.contentView).offset(-(15));
}];
}
#pragma mark - Event Response
- (void)attentionButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFansTableViewCell:didClickAttention:)]) {
[self.delegate xPMineFansTableViewCell:self didClickAttention:self.fansInfo.uid];
}
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFansTableViewCell:didClickAttention:)]) {
[self.delegate xPMineFansTableViewCell:self didClickAttention:self.fansInfo.uid];
}
}
#pragma mark - Getters And Setters
- (void)setFansInfo:(FansInfoModel *)fansInfo {
_fansInfo = fansInfo;
if (_fansInfo) {
self.avatarImageView.imageUrl = _fansInfo.avatar;
NSString *text = _fansInfo.nick.length > 5 ? [NSString stringWithFormat:@"%@...",[_fansInfo.nick substringToIndex:5]]:_fansInfo.nick;
self.nickLabel.text = text;
self.signLabel.text = _fansInfo.userDesc && _fansInfo.userDesc.length > 0? _fansInfo.userDesc : YMLocalizedString(@"XPMineFansTableViewCell0");
if (_fansInfo.useingType != ContactUseingType_In_Room && _fansInfo.useingType != ContactUseingType_Share) {
self.experImageView.hidden = NO;
self.charmImageView.hidden = NO;
self.nobleImageView.hidden = NO;
self.sexImageView.hidden = NO;
self.attentionButton.hidden = NO;
self.experImageView.imageUrl = _fansInfo.experUrl;
self.charmImageView.imageUrl = _fansInfo.charmUrl;
self.nobleImageView.imageUrl = _fansInfo.userVipInfoVO.vipIcon;
_fansInfo = fansInfo;
if (_fansInfo) {
self.avatarImageView.imageUrl = _fansInfo.avatar;
self.nickLabel.text = _fansInfo.nick;
self.signLabel.text = _fansInfo.userDesc && _fansInfo.userDesc.length > 0? _fansInfo.userDesc : YMLocalizedString(@"XPMineFansTableViewCell0");
if (_fansInfo.useingType != ContactUseingType_In_Room && _fansInfo.useingType != ContactUseingType_Share) {
self.experImageView.hidden = NO;
self.charmImageView.hidden = NO;
if (_fansInfo.userVipInfoVO.vipIcon != nil) {
self.nobleImageView.hidden = NO;
}else{
self.nobleImageView.hidden = YES;
}
self.sexImageView.hidden = NO;
self.attentionButton.hidden = NO;
self.experImageView.imageUrl = _fansInfo.experUrl;
self.charmImageView.imageUrl = _fansInfo.charmUrl;
self.nobleImageView.imageUrl = _fansInfo.userVipInfoVO.vipIcon;
[self.sexImageView setTitle:[NSString getAgeWithBirth:_fansInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _fansInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
BOOL isMyFriend = [[NIMSDK sharedSDK].userManager isMyFriend:_fansInfo.uid];
self.attentionButton.enabled = !isMyFriend;
self.attentionButton.hidden = NO;
UIImage* image = self.experImageView.image;
if (image) {
CGFloat scale = image.size.width / image.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.experUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
UIImage* charmImage = self.charmImageView.image;
if (charmImage) {
CGFloat scale = charmImage.size.width / charmImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.charmUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
UIImage *nobleImage = self.nobleImageView.image;
if (nobleImage) {
CGFloat scale = nobleImage.size.width / nobleImage.size.height;
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(0, 20));
}];
}
if (fansInfo.userVipInfoVO && fansInfo.userVipInfoVO.friendNickColour) {
self.nickLabel.textColor = [self colorWithHexString:fansInfo.userVipInfoVO.friendNickColour];
} else {
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
} else {
self.experImageView.hidden = YES;
self.charmImageView.hidden = YES;
self.nobleImageView.hidden = YES;
self.sexImageView.hidden = YES;
self.attentionButton.hidden = YES;
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
}
self.sexImageView.selected = _fansInfo.gender != GenderType_Male;
BOOL isMyFriend = [[NIMSDK sharedSDK].userManager isMyFriend:_fansInfo.uid];
self.attentionButton.enabled = !isMyFriend;
self.attentionButton.hidden = NO;
UIImage* image = self.experImageView.image;
if (image) {
CGFloat scale = image.size.width / image.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.experUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
UIImage* charmImage = self.charmImageView.image;
if (charmImage) {
CGFloat scale = charmImage.size.width / charmImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.charmUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
UIImage *nobleImage = self.nobleImageView.image;
if (nobleImage) {
CGFloat scale = nobleImage.size.width / nobleImage.size.height;
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(0, 20));
}];
}
if (fansInfo.userVipInfoVO && fansInfo.userVipInfoVO.friendNickColour) {
self.nickLabel.textColor = [self colorWithHexString:fansInfo.userVipInfoVO.friendNickColour];
} else {
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
} else {
self.experImageView.hidden = YES;
self.charmImageView.hidden = YES;
self.nobleImageView.hidden = YES;
self.sexImageView.hidden = YES;
self.attentionButton.hidden = YES;
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
}
}
- (UIColor *)colorWithHexString: (NSString *) hexString {
@@ -213,40 +216,40 @@
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 55/2;
}
return _avatarImageView;
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = (50.0/2);
}
return _avatarImageView;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentCenter;
_stackView.spacing = 2;
}
return _stackView;
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentCenter;
_stackView.spacing = (4);
}
return _stackView;
}
- (UILabel *)nickLabel {
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.font = [UIFont systemFontOfSize:15];
_nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
return _nickLabel;
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium];
_nickLabel.textColor = [DJDKMIMOMColor inputTextColor];
}
return _nickLabel;
}
- (UIButton *)sexImageView {
if (!_sexImageView) {
_sexImageView = [[UIButton alloc] init];
if (!_sexImageView) {
_sexImageView = [[UIButton alloc] init];
[_sexImageView setImage:kImage(@"home_age_boy_icon") forState:UIControlStateNormal];
[_sexImageView setImage:kImage(@"home_age_girl_icon") forState:UIControlStateSelected];
_sexImageView.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
@@ -254,26 +257,26 @@
_sexImageView.imageEdgeInsets = UIEdgeInsetsMake(0, 2, 0, 0);
_sexImageView.layer.cornerRadius = 14/2;
_sexImageView.layer.masksToBounds = YES;
}
return _sexImageView;
}
return _sexImageView;
}
- (NetImageView *)experImageView {
if (!_experImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_experImageView = [[NetImageView alloc] initWithConfig:config];
}
return _experImageView;
if (!_experImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_experImageView = [[NetImageView alloc] initWithConfig:config];
}
return _experImageView;
}
- (NetImageView *)charmImageView {
if (!_charmImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_charmImageView = [[NetImageView alloc] initWithConfig:config];
}
return _charmImageView;
if (!_charmImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_charmImageView = [[NetImageView alloc] initWithConfig:config];
}
return _charmImageView;
}
- (NetImageView *)nobleImageView {
@@ -284,37 +287,30 @@
}
- (UILabel *)signLabel{
if (!_signLabel) {
_signLabel = [[UILabel alloc] init];
_signLabel.textColor = [DJDKMIMOMColor secondTextColor];
_signLabel.font = [UIFont systemFontOfSize:12];
}
return _signLabel;
if (!_signLabel) {
_signLabel = [[UILabel alloc] init];
_signLabel.textColor = [DJDKMIMOMColor disableButtonTextColor];
_signLabel.font = [UIFont systemFontOfSize:12];
}
return _signLabel;
}
- (UIButton *)attentionButton {
if (!_attentionButton) {
_attentionButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_attentionButton setTitle:YMLocalizedString(@"XPMineFansTableViewCell1") forState:UIControlStateNormal];
[_attentionButton setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
_attentionButton.titleLabel.font = [UIFont systemFontOfSize:12];
[_attentionButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
[_attentionButton setTitle:YMLocalizedString(@"XPMineFansTableViewCell2") forState:UIControlStateDisabled];
[_attentionButton setTitleColor:[DJDKMIMOMColor disableButtonTextColor] forState:UIControlStateDisabled];
[_attentionButton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor disableButtonColor]] forState:UIControlStateDisabled];
_attentionButton.layer.masksToBounds = YES;
_attentionButton.layer.cornerRadius = 15;
[_attentionButton addTarget:self action:@selector(attentionButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _attentionButton;
if (!_attentionButton) {
_attentionButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_attentionButton setTitle:YMLocalizedString(@"XPMineFansTableViewCell1") forState:UIControlStateNormal];
[_attentionButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
_attentionButton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
[_attentionButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor],[DJDKMIMOMColor confirmButtonGradientMiddleColor],[DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake((68), (30))] forState:UIControlStateNormal];
[_attentionButton setTitle:YMLocalizedString(@"XPMineFansTableViewCell2") forState:UIControlStateDisabled];
[_attentionButton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor disableButtonColor]] forState:UIControlStateDisabled];
_attentionButton.layer.masksToBounds = YES;
_attentionButton.layer.cornerRadius = 15;
[_attentionButton addTarget:self action:@selector(attentionButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _attentionButton;
}
- (UIView *)lineView {
if (!_lineView) {
_lineView = [[UIView alloc] init];
_lineView.backgroundColor = [DJDKMIMOMColor dividerColor];
}
return _lineView;
}
@end

View File

@@ -1,8 +1,8 @@
//
// YMMineFriendTableViewCell.m
// YUMI
// XPMineFriendTableViewCell.m
// xplan-ios
//
// Created by YUMI on 2021/12/21.
// Created by on 2021/12/21.
//
#import "XPMineFriendTableViewCell.h"
@@ -11,7 +11,6 @@
///Tool
#import "NetImageConfig.h"
#import "NetImageView.h"
#import "DJDKMIMOMColor.h"
#import "UIImage+Utils.h"
///Model
#import "UserInfoModel.h"
@@ -31,150 +30,139 @@
@property (nonatomic,strong) NetImageView *charmImageView;
///
@property (nonatomic,strong) UILabel *signLabel;
///线
@property (nonatomic,strong) UIView *lineView;
@end
@implementation XPMineFriendTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.avatarImageView];
[self.contentView addSubview:self.stackView];
[self.contentView addSubview:self.signLabel];
[self.contentView addSubview:self.lineView];
self.backgroundColor = [UIColor clearColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.avatarImageView];
[self.contentView addSubview:self.stackView];
[self.contentView addSubview:self.signLabel];
[self.stackView addArrangedSubview:self.nickLabel];
[self.stackView addArrangedSubview:self.sexImageView];
[self.stackView addArrangedSubview:self.experImageView];
[self.stackView addArrangedSubview:self.charmImageView];
[self.stackView addArrangedSubview:self.nickLabel];
[self.stackView addArrangedSubview:self.sexImageView];
[self.stackView addArrangedSubview:self.experImageView];
[self.stackView addArrangedSubview:self.charmImageView];
}
- (void)initSubViewConstraints {
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(55, 55));
make.centerY.mas_equalTo(self.contentView);
make.left.mas_equalTo(self.contentView).offset(15);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(10);
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-2);
}];
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.stackView);
make.top.mas_equalTo(self.avatarImageView.mas_centerY).offset(2);
}];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(50, 50));
make.centerY.mas_equalTo(self.contentView);
make.left.mas_equalTo(self.contentView).offset(15);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(10);
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-2);
}];
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(28);
make.height.mas_equalTo(14);
}];
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.stackView);
make.bottom.mas_equalTo(self.contentView);
make.height.mas_equalTo(1);
make.right.mas_equalTo(self.contentView).offset(-15);
}];
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.stackView);
make.top.mas_equalTo(self.stackView.mas_bottom).offset(7);
}];
}
#pragma mark - Getters And Setters
- (void)setUserInfo:(UserInfoModel *)userInfo {
_userInfo = userInfo;
if (_userInfo) {
self.avatarImageView.imageUrl = _userInfo.avatar;
NSString *text = _userInfo.nick.length > 5 ? [NSString stringWithFormat:@"%@...",[_userInfo.nick substringToIndex:5]]:_userInfo.nick;
self.nickLabel.text = text;
self.signLabel.text = _userInfo.userDesc && _userInfo.userDesc.length > 0? _userInfo.userDesc : YMLocalizedString(@"XPMineFriendTableViewCell0");
if (self.isInRoom) {
self.experImageView.hidden = NO;
self.charmImageView.hidden = NO;
self.experImageView.imageUrl = _userInfo.userLevelVo.experUrl;
self.charmImageView.imageUrl = _userInfo.userLevelVo.charmUrl;
_userInfo = userInfo;
if (_userInfo) {
self.avatarImageView.imageUrl = _userInfo.avatar;
self.nickLabel.text = _userInfo.nick;
self.signLabel.text = _userInfo.userDesc && _userInfo.userDesc.length > 0? _userInfo.userDesc : YMLocalizedString(@"XPMineFriendTableViewCell0");
self.experImageView.hidden = NO;
self.charmImageView.hidden = NO;
self.experImageView.imageUrl = _userInfo.userLevelVo.experUrl;
self.charmImageView.imageUrl = _userInfo.userLevelVo.charmUrl;
[self.sexImageView setTitle:[NSString getAgeWithBirth:_userInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
[self.sexImageView setTitle:[NSString getAgeWithBirth:_userInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
UIImage* image = self.experImageView.image;
if (image) {
CGFloat scale = image.size.width / image.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_userInfo.userLevelVo.experUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
UIImage* charmImage = self.charmImageView.image;
if (charmImage) {
CGFloat scale = charmImage.size.width / charmImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_userInfo.userLevelVo.charmUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
} else {
self.experImageView.hidden = YES;
self.charmImageView.hidden = YES;
}
}
self.sexImageView.selected = _userInfo.gender != GenderType_Male;
UIImage* image = self.experImageView.image;
if (image) {
CGFloat scale = image.size.width / image.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_userInfo.userLevelVo.experUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
UIImage* charmImage = self.charmImageView.image;
if (charmImage) {
CGFloat scale = charmImage.size.width / charmImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
} else {
NSURL *imgUrl = [NSURL URLWithString:_userInfo.userLevelVo.charmUrl];
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
CGFloat scale = myImage.size.width / myImage.size.height;
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
}];
}
}
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 55/2;
}
return _avatarImageView;
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 50.0/2;
}
return _avatarImageView;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentCenter;
_stackView.spacing = 10;
}
return _stackView;
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentCenter;
_stackView.spacing = 10;
}
return _stackView;
}
- (UILabel *)nickLabel {
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.font = [UIFont systemFontOfSize:15];
_nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
}
return _nickLabel;
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.font = kFontMedium(15);
_nickLabel.textColor = [DJDKMIMOMColor inputTextColor];
}
return _nickLabel;
}
- (UIButton *)sexImageView {
if (!_sexImageView) {
_sexImageView = [[UIButton alloc] init];
if (!_sexImageView) {
_sexImageView = [[UIButton alloc] init];
[_sexImageView setImage:kImage(@"home_age_boy_icon") forState:UIControlStateNormal];
[_sexImageView setImage:kImage(@"home_age_girl_icon") forState:UIControlStateSelected];
_sexImageView.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
@@ -182,42 +170,35 @@
_sexImageView.imageEdgeInsets = UIEdgeInsetsMake(0, 2, 0, 0);
_sexImageView.layer.cornerRadius = 14/2;
_sexImageView.layer.masksToBounds = YES;
}
return _sexImageView;
}
return _sexImageView;
}
- (NetImageView *)experImageView {
if (!_experImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_experImageView = [[NetImageView alloc] initWithConfig:config];
}
return _experImageView;
if (!_experImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_experImageView = [[NetImageView alloc] initWithConfig:config];
}
return _experImageView;
}
- (NetImageView *)charmImageView {
if (!_charmImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_charmImageView = [[NetImageView alloc] initWithConfig:config];
}
return _charmImageView;
if (!_charmImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_charmImageView = [[NetImageView alloc] initWithConfig:config];
}
return _charmImageView;
}
- (UILabel *)signLabel{
if (!_signLabel) {
_signLabel = [[UILabel alloc] init];
_signLabel.textColor = [DJDKMIMOMColor secondTextColor];
_signLabel.font = [UIFont systemFontOfSize:12];
}
return _signLabel;
if (!_signLabel) {
_signLabel = [[UILabel alloc] init];
_signLabel.textColor = [DJDKMIMOMColor disableButtonTextColor];
_signLabel.font = kFontMedium(12);
}
return _signLabel;
}
- (UIView *)lineView {
if (!_lineView) {
_lineView = [[UIView alloc] init];
_lineView.backgroundColor = [DJDKMIMOMColor dividerColor];
}
return _lineView;
}
@end

View File

@@ -184,7 +184,7 @@
[self.genderImageView setTitle:[NSString getAgeWithBirth:_item.birth] forState:UIControlStateNormal];
self.genderImageView.backgroundColor = item.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.genderImageView.selected = item.gender != GenderType_Male;
}
- (NetImageView *)avaterImgView {

View File

@@ -54,6 +54,7 @@
[self.sexImageView setTitle:[NSString getAgeWithBirth:_data.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = data.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = data.gender != GenderType_Male;
}
}

View File

@@ -1,8 +1,8 @@
//
// YMMineAttentionViewController.m
// YUMI
// XPMineAttentionViewController.m
// xplan-ios
//
// Created by YUMI on 2021/12/21.
// Created by on 2021/12/21.
//
#import "XPMineAttentionViewController.h"
@@ -10,10 +10,7 @@
#import <Masonry/Masonry.h>
#import <MJRefresh/MJRefresh.h>
///Tool
#import "DJDKMIMOMColor.h"
#import "YUMIMacroUitls.h"
#import "NSArray+Safe.h"
#import "ClientConfig.h"
///Model
#import "FansInfoModel.h"
///View
@@ -28,7 +25,6 @@
#import "RoomHostDelegate.h"
///VC
#import "XPMineUserInfoViewController.h"
#import "XPMineSimpleUserInfoViewController.h"
#import "XPRoomViewController.h"
#import "SessionViewController.h"
@@ -51,169 +47,164 @@
}
- (XPMineAttentionPresenter *)createPresenter {
return [[XPMineAttentionPresenter alloc] init];
return [[XPMineAttentionPresenter alloc] init];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self initHeaderAndFooterRrfresh];
[self initSubViews];
[self initSubViewConstraints];
[super viewDidLoad];
[self initHeaderAndFooterRrfresh];
[self initSubViews];
[self initSubViewConstraints];
}
#pragma mark -
- (void)initHeaderAndFooterRrfresh {
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
self.tableView.mj_header = header;
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
self.tableView.mj_footer = footer;
[self headerRefresh];
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
self.tableView.mj_header = header;
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
self.tableView.mj_footer = footer;
[self headerRefresh];
}
#pragma mark - fangfa
- (void)headerRefresh {
self.page = 1;
[self.presenter getUserAttentionList:self.page pageSize:20 state:0];
self.page = 1;
[self.presenter getUserAttentionList:self.page pageSize:20 state:0];
}
- (void)footerRefresh {
if (self.hasNoMoreData) {
[self showErrorToast:YMLocalizedString(@"XPMineAttentionViewController0")];
return;
}
self.page++;
[self.presenter getUserAttentionList:self.page pageSize:20 state:1];
if (self.hasNoMoreData) {
[self showErrorToast:YMLocalizedString(@"XPMineAttentionViewController0")];
return;
}
self.page++;
[self.presenter getUserAttentionList:self.page pageSize:20 state:1];
}
#pragma mark - Private Method
- (void)initSubViews {
if (self.isClearColor){
self.view.backgroundColor = [UIColor whiteColor];
self.title = YMLocalizedString(@"XPMineAttentionViewController1");
if (self.isClearColor) {
self.view.backgroundColor = [UIColor clearColor];
}
self.title = YMLocalizedString(@"XPMineAttentionViewController1");
[self.view addSubview:self.tableView];
[self.view addSubview:self.tableView];
}
- (void)initSubViewConstraints {
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
}
#pragma mark - XPMineAttentionProtocol
- (void)getUserAttentionListSuccess:(NSArray *)array state:(int)state {
if (state == 0) {
[self.datasource removeAllObjects];
[self.tableView.mj_header endRefreshing];
} else {
[self.tableView.mj_footer endRefreshing];
}
if (array.count > 0) {
self.hasNoMoreData = NO;
[self.datasource addObjectsFromArray:array];
} else {
self.hasNoMoreData = YES;
[self.tableView.mj_footer endRefreshingWithNoMoreData];
}
[self.tableView reloadData];
if (state == 0) {
[self.datasource removeAllObjects];
[self.tableView.mj_header endRefreshing];
} else {
[self.tableView.mj_footer endRefreshing];
}
if (array.count > 0) {
self.hasNoMoreData = NO;
[self.datasource addObjectsFromArray:array];
} else {
self.hasNoMoreData = YES;
[self.tableView.mj_footer endRefreshingWithNoMoreData];
}
[self.tableView reloadData];
}
- (void)getUserAttentionListFail:(int)state {
if (state == 0) {
[self.tableView.mj_header endRefreshing];
} else {
[self.tableView.mj_footer endRefreshing];
}
if (state == 0) {
[self.tableView.mj_header endRefreshing];
} else {
[self.tableView.mj_footer endRefreshing];
}
}
#pragma mark - UITableViewDelegate And UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.datasource.count > 0 ? self.datasource.count : 1;
return self.datasource.count > 0 ? self.datasource.count : 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return self.datasource.count > 0 ? 65 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
return self.datasource.count > 0 ? 70 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.datasource.count > 0) {
XPMineAttentionTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
if (cell == nil) {
cell = [[XPMineAttentionTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
}
cell.delegate = self;
FansInfoModel * fansInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
fansInfo.useingType = self.type;
cell.fansInfo = fansInfo;
return cell;
}
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
if (cell == nil) {
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
}
cell.emptyTitle = YMLocalizedString(@"XPMineAttentionViewController2");
return cell;
if (self.datasource.count > 0) {
XPMineAttentionTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
if (cell == nil) {
cell = [[XPMineAttentionTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
}
cell.delegate = self;
FansInfoModel * fansInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
fansInfo.useingType = self.type;
cell.fansInfo = fansInfo;
return cell;
}
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
if (cell == nil) {
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
}
cell.emptyTitle = YMLocalizedString(@"XPMineAttentionViewController2");
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.datasource.count > 0) {
FansInfoModel * fansInfoModel = [self.datasource safeObjectAtIndex1:indexPath.row];
if (self.type == ContactUseingType_In_Room) {
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:fansInfoModel.uid type:NIMSessionTypeP2P]];
sessionVC.openType = SessionListOpenTypeRoom;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController addChildViewController:sessionVC];
[self.mainController.view addSubview:sessionVC.view];
} else if(self.type == ContactUseingType_Share){
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineAttentionViewController:didSelectItem:)]) {
[self.delegate xPMineAttentionViewController:self didSelectItem:fansInfoModel];
}
} else {
if ([ClientConfig shareConfig].canOpen) {
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
userInfoVC.uid = fansInfoModel.uid.integerValue;
[self.navigationController pushViewController:userInfoVC animated:YES];
}else{
XPMineSimpleUserInfoViewController * userInfoVC = [[XPMineSimpleUserInfoViewController alloc] init];
userInfoVC.uid = fansInfoModel.uid.integerValue;
[self.navigationController pushViewController:userInfoVC animated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.datasource.count > 0) {
FansInfoModel * fansInfoModel = [self.datasource safeObjectAtIndex1:indexPath.row];
if (self.type == ContactUseingType_In_Room) {
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:fansInfoModel.uid type:NIMSessionTypeP2P]];
sessionVC.openType = SessionListOpenTypeRoom;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController addChildViewController:sessionVC];
[self.mainController.view addSubview:sessionVC.view];
} else if(self.type == ContactUseingType_Share){
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineAttentionViewController:didSelectItem:)]) {
[self.delegate xPMineAttentionViewController:self didSelectItem:fansInfoModel];
}
}
}
} else {
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
userInfoVC.uid = fansInfoModel.uid.integerValue;
[self.navigationController pushViewController:userInfoVC animated:YES];
}
}
}
#pragma mark - XPMineAttentionTableViewCellDelegate
- (void)xPMineAttentionTableViewCell:(XPMineAttentionTableViewCell *)view findUser:(NSString *)uid {
//TODO:退 TODO
[self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
[self.navigationController popToRootViewControllerAnimated:NO];
XPRoomViewController<RoomHostDelegate> * rooomVC = obj;
[rooomVC exitRoom];
*stop = YES;
}
}];
[XPRoomViewController openRoom:uid viewController:self];
//TODO:退 TODO
[self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
[self.navigationController popToRootViewControllerAnimated:NO];
XPRoomViewController<RoomHostDelegate> * rooomVC = obj;
[rooomVC exitRoom];
*stop = YES;
}
}];
[XPRoomViewController openRoom:uid viewController:self];
}
#pragma mark - JXCategoryListContentViewDelegate
- (UIView *)listView {
return self.view;
return self.view;
}
- (UIScrollView *)listScrollView {
return self.tableView;
@@ -233,28 +224,27 @@
#pragma mark - Getters And Setters
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
_tableView.rowHeight = 65;
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
[_tableView registerClass:[XPMineAttentionTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
}
return _tableView;
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
[_tableView registerClass:[XPMineAttentionTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
}
return _tableView;
}
- (NSMutableArray *)datasource {
if (!_datasource) {
_datasource = [NSMutableArray array];
}
return _datasource;
if (!_datasource) {
_datasource = [NSMutableArray array];
}
return _datasource;
}
@end

View File

@@ -49,6 +49,7 @@
#pragma mark - Private Method
- (void)initSubViews {
self.view.backgroundColor = [UIColor whiteColor];
[self.view addSubview:self.titleView];
[self.view addSubview:self.listContainerView];

View File

@@ -1,19 +1,15 @@
//
// YMMineFansViewController.m
// YUMI
// XPMineFansViewController.m
// xplan-ios
//
// Created by YUMI on 2021/12/21.
// Created by on 2021/12/21.
//
#import "XPMineFansViewController.h"
///Third
#import <Masonry/Masonry.h>
#import <MJRefresh/MJRefresh.h>
///Tool
#import "DJDKMIMOMColor.h"
#import "YUMIMacroUitls.h"
#import "NSArray+Safe.h"
#import "ClientConfig.h"
///Tool"
///Model
#import "FansInfoModel.h"
///View
@@ -24,10 +20,9 @@
#import "XPMineFansProtocol.h"
///VC
#import "XPMineUserInfoViewController.h"
#import "XPMineSimpleUserInfoViewController.h"
#import "SessionViewController.h"
@interface XPMineFansViewController ()<UITableViewDelegate,UITableViewDataSource, XPMineFansProtocol, XPMineFansTableViewCellDelegate>
#import <JXPagingView/JXPagerView.h>
@interface XPMineFansViewController ()<UITableViewDelegate,UITableViewDataSource, XPMineFansProtocol, XPMineFansTableViewCellDelegate,JXPagerViewListViewDelegate>
///
@property (nonatomic,strong) UITableView *tableView;
///
@@ -47,170 +42,167 @@
}
- (XPMineFansPresenter *)createPresenter {
return [[XPMineFansPresenter alloc] init];
return [[XPMineFansPresenter alloc] init];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.tableView reloadData];
[super viewWillAppear:animated];
[self.tableView reloadData];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self initHeaderAndFooterRrfresh];
[self initSubViews];
[self initSubViewConstraints];
[self initHeaderAndFooterRrfresh];
[self initSubViews];
[self initSubViewConstraints];
}
#pragma mark -
- (void)initHeaderAndFooterRrfresh {
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
self.tableView.mj_header = header;
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
self.tableView.mj_footer = footer;
[self headerRefresh];
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
self.tableView.mj_header = header;
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
self.tableView.mj_footer = footer;
[self headerRefresh];
}
#pragma mark - fangfa
- (void)headerRefresh {
self.page = 1;
[self.presenter getUserFansList:self.page pageSize:20 state:0];
self.page = 1;
[self.presenter getUserFansList:self.page pageSize:20 state:0];
}
- (void)footerRefresh {
if (self.hasNoMoreData) {
[self showErrorToast:YMLocalizedString(@"XPMineFansViewController0")];
return;
}
self.page++;
[self.presenter getUserFansList:self.page pageSize:20 state:1];
if (self.hasNoMoreData) {
[self showErrorToast:YMLocalizedString(@"XPMineFansViewController0")];
return;
}
self.page++;
[self.presenter getUserFansList:self.page pageSize:20 state:1];
}
#pragma mark - Private Method
- (void)initSubViews {
if (self.isClearColor){
// self.view.backgroundColor = [UIColor whiteColor];
self.title = YMLocalizedString(@"XPMineFansViewController1");
if(self.isClearColor){
self.view.backgroundColor = [UIColor clearColor];
}else{
self.view.backgroundColor = [UIColor whiteColor];
}
self.title = YMLocalizedString(@"XPMineFansViewController1");
[self.view addSubview:self.tableView];
[self.view addSubview:self.tableView];
}
- (void)initSubViewConstraints {
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
}
#pragma mark - XPMineFansProtocol
- (void)getUserFansListSuccess:(NSArray *)array state:(int)state {
if (state == 0) {
[self.datasource removeAllObjects];
[self.tableView.mj_header endRefreshing];
} else {
[self.tableView.mj_footer endRefreshing];
}
if (array.count > 0) {
self.hasNoMoreData = NO;
[self.datasource addObjectsFromArray:array];
} else {
self.hasNoMoreData = YES;
[self.tableView.mj_footer endRefreshingWithNoMoreData];
}
[self.tableView reloadData];
if (state == 0) {
[self.datasource removeAllObjects];
[self.tableView.mj_header endRefreshing];
} else {
[self.tableView.mj_footer endRefreshing];
}
if (array.count > 0) {
self.hasNoMoreData = NO;
[self.datasource addObjectsFromArray:array];
} else {
self.hasNoMoreData = YES;
[self.tableView.mj_footer endRefreshingWithNoMoreData];
}
[self.tableView reloadData];
}
- (void)getUserFansListFail:(int)state {
if (state == 0) {
[self.tableView.mj_header endRefreshing];
} else {
[self.tableView.mj_footer endRefreshing];
}
if (state == 0) {
[self.tableView.mj_header endRefreshing];
} else {
[self.tableView.mj_footer endRefreshing];
}
}
- (void)attentionFansSuccess {
///
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self showSuccessToast:YMLocalizedString(@"XPMineFansViewController2")];
[self.tableView reloadData];
});
///
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self showSuccessToast:YMLocalizedString(@"XPMineFansViewController2")];
[self.tableView reloadData];
});
}
#pragma mark - UITableViewDelegate And UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.datasource.count > 0 ? self.datasource.count : 1;
return self.datasource.count > 0 ? self.datasource.count : 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return self.datasource.count > 0 ? 65 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
return self.datasource.count > 0 ? 70 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.datasource.count > 0) {
XPMineFansTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
if (cell == nil) {
cell = [[XPMineFansTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
}
cell.delegate = self;
FansInfoModel * fansInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
fansInfo.useingType = self.type;
cell.fansInfo = fansInfo;
return cell;
}
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
if (cell == nil) {
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
}
cell.emptyTitle = YMLocalizedString(@"XPMineFansViewController3");
return cell;
if (self.datasource.count > 0) {
XPMineFansTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
if (cell == nil) {
cell = [[XPMineFansTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
}
cell.delegate = self;
FansInfoModel * fansInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
fansInfo.useingType = self.type;
cell.fansInfo = fansInfo;
return cell;
}
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
if (cell == nil) {
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
}
cell.emptyTitle = YMLocalizedString(@"XPMineFansViewController3");
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.datasource.count > 0) {
FansInfoModel * fansInfoModel = [self.datasource safeObjectAtIndex1:indexPath.row];
if (self.type == ContactUseingType_In_Room) {
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:fansInfoModel.uid type:NIMSessionTypeP2P]];
sessionVC.openType = SessionListOpenTypeRoom;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController addChildViewController:sessionVC];
[self.mainController.view addSubview:sessionVC.view];
} else if(self.type == ContactUseingType_Share) {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFansViewController:didSelectItem:)]) {
[self.delegate xPMineFansViewController:self didSelectItem:fansInfoModel];
}
} else {
if ([ClientConfig shareConfig].canOpen) {
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
userInfoVC.uid = fansInfoModel.uid.integerValue;
[self.navigationController pushViewController:userInfoVC animated:YES];
}else{
XPMineSimpleUserInfoViewController * userInfoVC = [[XPMineSimpleUserInfoViewController alloc] init];
userInfoVC.uid = fansInfoModel.uid.integerValue;
[self.navigationController pushViewController:userInfoVC animated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.datasource.count > 0) {
FansInfoModel * fansInfoModel = [self.datasource safeObjectAtIndex1:indexPath.row];
if (self.type == ContactUseingType_In_Room) {
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:fansInfoModel.uid type:NIMSessionTypeP2P]];
sessionVC.openType = SessionListOpenTypeRoom;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController addChildViewController:sessionVC];
[self.mainController.view addSubview:sessionVC.view];
} else if(self.type == ContactUseingType_Share) {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFansViewController:didSelectItem:)]) {
[self.delegate xPMineFansViewController:self didSelectItem:fansInfoModel];
}
}
}
} else {
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
userInfoVC.uid = fansInfoModel.uid.integerValue;
[self.navigationController pushViewController:userInfoVC animated:YES];
}
}
}
#pragma mark - JXCategoryListContentViewDelegate
- (UIView *)listView {
return self.view;
return self.view;
}
- (UIScrollView *)listScrollView {
return self.tableView;
@@ -226,36 +218,35 @@
}
#pragma mark - mark
- (void)xPMineFansTableViewCell:(XPMineFansTableViewCell *)view didClickAttention:(NSString *)uid {
if (uid.length > 0) {
[self.presenter attentionFans:uid];
}
if (uid.length > 0) {
[self.presenter attentionFans:uid];
}
}
#pragma mark - Getters And Setters
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
_tableView.rowHeight = 65;
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
[_tableView registerClass:[XPMineFansTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
}
return _tableView;
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
[_tableView registerClass:[XPMineFansTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
}
return _tableView;
}
- (NSMutableArray *)datasource {
if (!_datasource) {
_datasource = [NSMutableArray array];
}
return _datasource;
if (!_datasource) {
_datasource = [NSMutableArray array];
}
return _datasource;
}
@end

View File

@@ -1,8 +1,8 @@
//
// YMMineFriendViewController.m
// YUMI
// XPMineFriendViewController.m
// xplan-ios
//
// Created by YUMI on 2021/12/21.
// Created by on 2021/12/21.
//
#import "XPMineFriendViewController.h"
@@ -11,9 +11,7 @@
#import <MJRefresh/MJRefresh.h>
#import <NIMSDK/NIMSDK.h>
///Tool
#import "DJDKMIMOMColor.h"
#import "YUMIMacroUitls.h"
#import "NSArray+Safe.h"
///Model
#import "UserInfoModel.h"
///View
@@ -39,7 +37,7 @@
@implementation XPMineFriendViewController
- (__kindof id)createPresenter {
return [[XPMineFriendPresenter alloc] init];
return [[XPMineFriendPresenter alloc] init];
}
- (BOOL)isHiddenNavBar {
@@ -47,97 +45,98 @@
}
- (void)viewDidLoad {
[super viewDidLoad];
NSArray * array = [[NIMSDK sharedSDK].userManager myFriends];
if (array.count > 0) {
NSMutableArray * uids = [NSMutableArray array];
for (int i = 0; i< array.count; i++) {
NIMUser * user = [array safeObjectAtIndex1:i];
[uids addObject:user.userId];
}
[self.presenter getUserListInfo:uids];
}
[self initSubViews];
[self initSubViewConstraints];
[super viewDidLoad];
NSArray * array = [[NIMSDK sharedSDK].userManager myFriends];
if (array.count > 0) {
NSMutableArray * uids = [NSMutableArray array];
for (int i = 0; i< array.count; i++) {
NIMUser * user = [array safeObjectAtIndex1:i];
[uids addObject:user.userId];
}
[self.presenter getUserListInfo:uids];
}
[self initSubViews];
[self initSubViewConstraints];
}
#pragma mark - Private Method
- (void)initSubViews {
if (self.isClearColor){
self.view.backgroundColor = [UIColor clearColor];
}else{
self.view.backgroundColor = [UIColor whiteColor];
}
[self.view addSubview:self.tableView];
[self.view addSubview:self.tableView];
}
- (void)initSubViewConstraints {
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
}
#pragma mark - UITableViewDelegate And UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.datasource.count > 0 ? self.datasource.count : 1;
return self.datasource.count > 0 ? self.datasource.count : 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return self.datasource.count > 0 ? 65 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
return self.datasource.count > 0 ? 70 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.datasource.count > 0) {
XPMineFriendTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
if (cell == nil) {
cell = [[XPMineFriendTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
}
cell.userInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
return cell;
}
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
if (cell == nil) {
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
}
cell.emptyTitle = YMLocalizedString(@"XPMineFriendViewController0");
return cell;
if (self.datasource.count > 0) {
XPMineFriendTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
if (cell == nil) {
cell = [[XPMineFriendTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
}
cell.userInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
return cell;
}
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
if (cell == nil) {
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
}
cell.emptyTitle = YMLocalizedString(@"XPMineFriendViewController0");
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.datasource.count > 0) {
UserInfoModel * userInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
if (self.type == ContactUseingType_Share) {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFriendViewController:didSelectItem:)]) {
[self.delegate xPMineFriendViewController:self didSelectItem:userInfo];
}
} else if(self.type == ContactUseingType_In_Room) {
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:[NSString stringWithFormat:@"%ld", userInfo.uid] type:NIMSessionTypeP2P]];
sessionVC.openType = SessionListOpenTypeRoom;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController addChildViewController:sessionVC];
[self.mainController.view addSubview:sessionVC.view];
} else {
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:[NSString stringWithFormat:@"%ld", userInfo.uid] type:NIMSessionTypeP2P]];
sessionVC.openType = SessionListOpenTypeRoom;
[self.navigationController pushViewController:sessionVC animated:YES];
}
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.datasource.count > 0) {
UserInfoModel * userInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
if (self.type == ContactUseingType_Share) {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFriendViewController:didSelectItem:)]) {
[self.delegate xPMineFriendViewController:self didSelectItem:userInfo];
}
} else if(self.type == ContactUseingType_In_Room) {
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:[NSString stringWithFormat:@"%ld", userInfo.uid] type:NIMSessionTypeP2P]];
sessionVC.openType = SessionListOpenTypeRoom;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController addChildViewController:sessionVC];
[self.mainController.view addSubview:sessionVC.view];
} else {
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:[NSString stringWithFormat:@"%ld", userInfo.uid] type:NIMSessionTypeP2P]];
sessionVC.openType = self.type == ContactUseingType_In_Session ? SessionListOpenTypeDefault : SessionListOpenTypeRoom;
[self.navigationController pushViewController:sessionVC animated:YES];
}
}
}
#pragma mark - XPMineFriendProtocol
- (void)getUserListInfoSuccess:(NSArray *)list {
self.datasource = list;
[self.tableView reloadData];
self.datasource = list;
[self.tableView reloadData];
}
#pragma mark - JXCategoryListContentViewDelegate
- (UIView *)listView {
return self.view;
return self.view;
}
- (UIScrollView *)listScrollView {
return self.tableView;
@@ -151,24 +150,23 @@
self.scrollCallback(scrollView);
}
}
#pragma mark - Getters And Setters
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
_tableView.rowHeight = 65;
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
[_tableView registerClass:[XPMineFriendTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
}
return _tableView;
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
_tableView.rowHeight = 65;
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
[_tableView registerClass:[XPMineFriendTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
}
return _tableView;
}
@end

View File

@@ -146,6 +146,7 @@
[self.sexImageView setTitle:[NSString getAgeWithBirth:_authorityModel.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _authorityModel.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _authorityModel.gender != GenderType_Male;
if (_authorityModel.userLevelVo.experUrl) {
if (self.experImageView.state == NetImageStateLoaded) {
self.experImageView.imageUrl = _authorityModel.userLevelVo.experUrl;

View File

@@ -100,6 +100,7 @@
self.nickLabel.text = nick;
[self.sexImageView setTitle:[NSString getAgeWithBirth:_userInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor =_userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _userInfo.gender != GenderType_Male;
self.idLabel.text = [NSString stringWithFormat:@"%@", _userInfo.erbanNo];
self.superAdminButton.enabled = !_userInfo.hasSet;
if(self.superAdminButton.enabled == NO){

View File

@@ -157,6 +157,7 @@
[self.sexImageView setTitle:[NSString getAgeWithBirth:_memberInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _memberInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _memberInfo.gender != GenderType_Male;
if (_memberInfo.experUrl) {
if (self.experImageView.state == NetImageStateLoaded) {
self.experImageView.imageUrl = _memberInfo.experUrl;

View File

@@ -112,6 +112,7 @@ UIKIT_EXTERN NSString *kInviteMemeberSuccess;
[self.sexImageView setTitle:[NSString getAgeWithBirth:_userInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _userInfo.gender != GenderType_Male;
self.nickLabel.text = _userInfo.nick;
self.idLabel.text = [NSString stringWithFormat:YMLocalizedString(@"XPMineGuildSearchMemberTableViewCell0"), _userInfo.erbanNo];
switch (_userInfo.hallBtnStatus) {

View File

@@ -292,6 +292,7 @@ UIKIT_EXTERN NSString * kUpdateSoundInfo;
if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
UIImageWriteToSavedPhotosAlbum(selectedPhoto, nil, nil, nil);
}
[self showLoading];
[self.presenter uploadAvatar:selectedPhoto];
}
[picker dismissViewControllerAnimated:YES completion:^{}];
@@ -360,6 +361,7 @@ UIKIT_EXTERN NSString * kUpdateSoundInfo;
}
- (void)uploadImageSuccess:(NSString *)url {
[self hideHUD];
[self.presenter complectionInfoWithAvatar:url nick:nil birth:nil userDesc:nil];
}
#pragma mark - XPMineUserInfoEditPickView

View File

@@ -576,6 +576,7 @@
self.fansNumLabel.text =[NSString stringWithFormat:YMLocalizedString(@"XPMineUserInfoHeaderView2"), _userInfo.fansNum];
[self.sexImageView setTitle:[NSString getAgeWithBirth:_userInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _userInfo.gender != GenderType_Male;
self.officalImageView.hidden = userInfo.defUser != UserLevelType_Offical;
self.beautifulImageViw.hidden = !userInfo.hasPrettyErbanNo;
self.newUserImageView.hidden = !userInfo.newUser;

View File

@@ -117,9 +117,10 @@
make.top.mas_equalTo(self.nameStackView.mas_bottom).offset(13);
make.height.mas_equalTo(18);
}];
CGFloat starWidth = 14 * 46 / 18;
[self.starVeiw mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(46);
make.height.mas_equalTo(18);
make.width.mas_equalTo(starWidth);
make.height.mas_equalTo(14);
}];
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(28);
@@ -399,6 +400,7 @@
[self.sexImageView setTitle:[NSString getAgeWithBirth:userInfo.birth] forState:UIControlStateNormal];
self.sexImageView.hidden = NO;
self.sexImageView.backgroundColor = userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _userInfo.gender != GenderType_Male;
self.levelLabel.attributedText = _userInfo.levelAtt;
self.fansView.number = [NSString stringWithFormat:@"%ld",_userInfo.fansNum];
self.attentionView.number = [NSString stringWithFormat:@"%ld",_userInfo.followNum];

View File

@@ -155,7 +155,7 @@
self.nickLabel.text = nick.length > 0 ? nick : @"";
[self.sexImageView setTitle:[NSString stringWithFormat:@"%ld",_interactiveInfo.age] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _interactiveInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _interactiveInfo.gender != GenderType_Male;
BOOL isComment = _interactiveInfo.actionType == MonentsInteractiveActionType_Comment;
self.commentLabel.text = isComment ? YMLocalizedString(@"XPMonentsInteractiveTableViewCell0") : @"";
BOOL isText = _interactiveInfo.type == MonentsContentType_Text;

View File

@@ -236,6 +236,7 @@
[self.sexImageView setTitle:[NSString stringWithFormat:@"%d",_monentsInfo.age] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _monentsInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _monentsInfo.gender != GenderType_Male;
self.officalImageView.hidden = _monentsInfo.defUser != 2;
self.newsUserImageView.hidden = !_monentsInfo.newUser;
self.nobleImageView.hidden = !_monentsInfo.userVipInfoVO;

View File

@@ -193,6 +193,7 @@
[_birthdayView setTitle:[NSString getAgeWithBirth:_roomInfo.birth] forState:UIControlStateNormal];
_birthdayView.backgroundColor = _roomInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.birthdayView.selected = _roomInfo.gender != GenderType_Male;
_gameBgView.hidden = YES;
_gameIconView.hidden = YES;
_borderImageView.hidden = YES;

View File

@@ -81,7 +81,7 @@
}];
[self.nameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_lessThanOrEqualTo(kGetScaleWidth(79));
make.width.mas_lessThanOrEqualTo(kGetScaleWidth(60));
make.centerX.equalTo(self.bgView).mas_offset(kGetScaleWidth(10));
make.height.mas_equalTo(kGetScaleWidth(17));
make.top.equalTo(self.borderImageView.mas_bottom).mas_offset(kGetScaleWidth(3));

View File

@@ -55,6 +55,7 @@
self.idLabel.text = [NSString stringWithFormat:YMLocalizedString(@"XPMineUserInfoTableViewCell3"),AppName, resultModel.erbanNo];
[self.sexImageView setTitle:[NSString getAgeWithBirth:resultModel.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = resultModel.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = resultModel.gender != GenderType_Male;
if (type == SearchType_Users) {
self.numberLabel.text = YMLocalizedString(@"XPSearchListTableViewCell1");
self.numberView.hidden = resultModel.roomUid.length <= 0;
@@ -77,6 +78,7 @@
[self.sexImageView setTitle:[NSString getAgeWithBirth:resultModel.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = resultModel.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = resultModel.gender != GenderType_Male;
if (resultModel.onlineNum > 100) {
self.numberLabel.text = [NSString stringWithFormat:@"%ld", resultModel.onlineNum];
} else {

View File

@@ -351,6 +351,12 @@
[self receiveRoomGraffitiGift:attachment];
} else if(attachment.first == CustomMessageType_Graffiti_Star_Kitchen){///
[self receiveRoomGraffitiStarKitchen:attachment];
}else if (attachment.first == CustomMessageType_Treasure_Fairy && (attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L4 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L5 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L1 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L2 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L3)) { //
[self receiveTreasureFairyGiftHighLevel:attachment];
}else if (attachment.first == CustomMessageType_Tarot && (attachment.second == Custom_Message_Sub_Tarot_Advanced || attachment.second == Custom_Message_Sub_Tarot_Intermediate)){
[self receiveTarotBanner:attachment];
}else if (attachment.first == Custom_Message_Sub_Common_H5_Novice &&(attachment.second == Custom_Message_Sub_Common_H5_Novice || attachment.second == Custom_Message_Sub_Common_H5_Advanced)){
[self receiveCommonH5Banner:attachment];
}
}
}

View File

@@ -99,6 +99,7 @@
self.avaratImageView.imageUrl = _userInfo.avatar;
[self.sexImageView setTitle:[NSString getAgeWithBirth:_userInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = _userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = _userInfo.gender != GenderType_Male;
self.rankLabel.text = [NSString stringWithFormat:@"%ld", _userInfo.number];
if (self.isManager) {
if (_userInfo.arrangeMicType == ArrangeMicType_Dating) {

View File

@@ -453,7 +453,7 @@
[self.tableView reloadData];
if (self.userInfo.isManager) {
self.applyButton.hidden = listModel.queue.count > 0;
self.applyButton.hidden = self.datasource.count > 0;
} else {
if (listModel.myPos.intValue > 0) {
self.applyButton.hidden = NO;
@@ -518,7 +518,7 @@
[self.tableView reloadData];
if (self.userInfo.isManager) {
self.applyButton.hidden = listModel.queue.count > 0;
self.applyButton.hidden = self.datasource.count > 0;
} else {
if (listModel.myPos.intValue > 0) {
self.applyButton.hidden = NO;

View File

@@ -271,24 +271,31 @@
}];
}
- (void)showLittleGameMiniView:(RoomType)type micCount:(NSInteger)micCount {
if (type == RoomType_MiniGame) {
if (!self.littleGameMiniView.superview) {
[self addSubview:self.littleGameMiniView];
[self.littleGameMiniView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(0);
make.top.mas_equalTo(kNavigationHeight);
make.height.mas_equalTo(23);
}];
if([ClientConfig shareConfig].canOpen){
if (type == RoomType_MiniGame) {
if (!self.littleGameMiniView.superview) {
[self addSubview:self.littleGameMiniView];
[self.littleGameMiniView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(0);
make.top.mas_equalTo(kNavigationHeight);
make.height.mas_equalTo(23);
}];
}
self.littleGameMiniView.micCount = micCount;
if (micCount > 6) {
[self.littleGameMiniView removeFromSuperview];
}
} else {
if (self.littleGameMiniView.superview) {
[self.littleGameMiniView removeFromSuperview];
}
}
self.littleGameMiniView.micCount = micCount;
if (micCount > 6) {
[self.littleGameMiniView removeFromSuperview];
}
} else {
}else{
if (self.littleGameMiniView.superview) {
[self.littleGameMiniView removeFromSuperview];
}
}
}
- (void)configLittleGameState {

View File

@@ -125,7 +125,7 @@
}
-(void)subtractAction{
NSInteger num = self.textFiled.text.integerValue - 10;
if(num < 0){
if(num <= 0){
self.textFiled.text = @"1";
if(self.delegate && [self.delegate respondsToSelector:@selector(inputLoveNum:)]){
[self.delegate inputLoveNum:self.textFiled.text];

View File

@@ -138,6 +138,20 @@ UIKIT_EXTERN NSString * const kRoomReceivedCandyNotificationKey;
self.buyView.num = self.setModel.ticketNum;
}
- (void)buyLoveTicketSuccessWithNum:(NSString *)num{
NSString *time = [NSDate getNowTimeTimestamp];
NSString *curTime = [NSDate timestampSwitchTime:[time integerValue] andFormatter:@"yyyy-MM-dd"];
NSDictionary *timeDic = [[NSUserDefaults standardUserDefaults]valueForKey:@"kBuyLoveNumSuccessNoPrompt"];
BOOL isShow = YES;
if(timeDic != nil){
isShow = timeDic[curTime] == nil;
}
if(isShow == NO){
[self.presenter getLoveSettingInfo];
return;
};
XPCandyTreeBuySuccessView *successView = [[XPCandyTreeBuySuccessView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
successView.num = num;
[TTPopup popupView:successView style:TTPopupStyleAlert];

View File

@@ -251,7 +251,7 @@
shareInfo.roomUid = roomInfo.uid;
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * urlString = [NSString stringWithFormat:@"%@/%@?shareUid=%@&uid=%ld&room_name=%@&room_id=%ld&room_avatar=%@&share_name=%@",API_HOST_URL,URLWithType(kShareRoomURL),uid,roomInfo.uid,roomInfo.title,roomInfo.erbanNo,roomInfo.avatar,roomInfo.nick];
urlString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
shareInfo.shareUrl = urlString;
CGFloat margin = 15;
CGSize itemSize = CGSizeMake((KScreenWidth-2*margin)/4, 65);

View File

@@ -156,10 +156,12 @@
// [self.sexImageView setTitle:[NSString getAgeWithBirth:userInfo.birth.longLongValue] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = userInfo.gender != GenderType_Male;
} else {
NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:_member.userId];
[self.sexImageView setTitle:[NSString getAgeWithBirth:user.userInfo.birth.longLongValue] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = user.userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = user.userInfo.gender != GenderType_Male;
}
if (extDic.allKeys.count > 0 || (member.type == NIMTeamMemberTypeOwner || member.type == NIMChatroomMemberTypeManager)) {
self.tagStackView.hidden = NO;

View File

@@ -454,6 +454,7 @@
self.postionLabel.hidden = YES;
[self.sexImageView setTitle:[NSString getAgeWithBirth:userInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = userInfo.gender != GenderType_Male;
}
self.forbidKickView.hidden = !userInfo.preventKick;
} else {

View File

@@ -538,6 +538,7 @@
[self.sexImageView setTitle:[NSString getAgeWithBirth:userInfo.birth] forState:UIControlStateNormal];
self.sexImageView.backgroundColor = userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.sexImageView.selected = userInfo.gender != GenderType_Male;
self.officalImageView.hidden = userInfo.defUser != UserLevelType_Offical;
self.newUserImageView.hidden = !userInfo.newUser;
if (userInfo.newUser) {

View File

@@ -305,6 +305,12 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出
[self.view addSubview:self.roomHeaderView];
[self.view addSubview:self.functionView];
[self.view addSubview:self.animationView];
self.activityContainerView.hidden = YES;
self.littleGameView.hidden = YES;
if ([ClientConfig shareConfig].canOpen) {
self.littleGameView.hidden = NO;
self.activityContainerView.hidden = NO;
}
}
- (void)initSubViewConstraints {
@@ -508,7 +514,10 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出
make.left.mas_equalTo(self.view);
make.right.mas_equalTo(self.activityContainerView.mas_left).offset(-10);
}];
self.quickMessageContainerView.hidden = YES;
[self.quickMessageContainerView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(0);
}];
[self.activityContainerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(65);
make.right.mas_equalTo(self.view);
@@ -516,6 +525,10 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出
make.width.mas_equalTo(80);
}];
} else {
self.quickMessageContainerView.hidden = NO;
[self.quickMessageContainerView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(30);
}];
[self.stageView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.view);
make.top.mas_equalTo(self.roomHeaderView.mas_bottom);
@@ -1459,6 +1472,8 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出
}else if (attachment.first == CustomMessageType_Treasure_Fairy && (attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L4 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Draw_Gift_L5 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L1 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L2 || attachment.second == Custom_Message_Sub_Treasure_Fairy_Convert_L3)) { //
}else if (attachment.first == CustomMessageType_Tarot && (attachment.second == Custom_Message_Sub_Tarot_Advanced || attachment.second == Custom_Message_Sub_Tarot_Intermediate)){
isHave = YES;
}
if(isHave == NO)return;

View File

@@ -340,6 +340,7 @@
self.descLabel.text = cardInfo.userDesc;
[_genderImageView setTitle:[NSString getAgeWithBirth:cardInfo.birth] forState:UIControlStateNormal];
self.genderImageView.backgroundColor = cardInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
self.genderImageView.selected = cardInfo.gender != GenderType_Male;
[self openCountdownWithTime:11];
[self.collectionView reloadData];
if (cardInfo.voiceCard.propVals.count) {

View File

@@ -151,7 +151,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
}];
[[NSNotificationCenter defaultCenter] addObserverForName:@"reloadnewtab" object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
if (self.isReload) {
if (self.isReload == NO) {
[self initTabs:YES];
self.isReload = YES;
}

View File

@@ -30,11 +30,10 @@
} else {
language = @"en";
}
language = @"zh-Hant"; //
NSBundle * bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:language ofType:@"lproj"]];
value = [bundle localizedStringForKey:key value:value table:nil];
NSBundle * bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:language ofType:@"lproj"]];
value = [bundle localizedStringForKey:key value:value table:nil];
return [[NSBundle mainBundle] localizedStringForKey:key value:value table:nil];
return value;
}
@end

View File

@@ -3068,6 +3068,16 @@
///XPGiftFreeItemCell
"XPGiftFreeItemCell0"="免费礼物";
"XPGiftFreeItemCell1"="礼物名称";
///SessionDiscoverNewTableViewCell.m
"SessionDiscoverNewTableViewCell0" = "发现萌新";
///XPMineSimpleUserInfoHeaderView
"XPMineSimpleUserInfoHeaderView0"="這個人很懶,還沒有簽名嗷~";
"XPMineSimpleUserInfoHeaderView1"="這個人很懶,還沒有簽名嗷~";
"XPMineSimpleUserInfoHeaderView2"="直播中";
"XPMineSimpleUserInfoHeaderView3"="礼物墙";
"XPMineSimpleUserInfoHeaderView4"="礼物墙";
"XPMineSimpleUserInfoHeaderView5"="幸运礼物";
"XPMineSimpleUserInfoHeaderView6"="动态";
///不能脚本生成的
"App_Common_And" = "和";
"App_Common_Male" = "男";

View File

@@ -341,7 +341,6 @@
"XPMineHeadView7" = "審核中";
"XPMineHeadView8" = "復製成功";
"XPMineHeadView9" = "魔羯";
"XPMineHeadView10" = "水瓶";
"XPMineHeadView11" = "雙魚";
@@ -355,13 +354,6 @@
"XPMineHeadView19" = "天蠍";
"XPMineHeadView20" = "射手";
"XPMineUserInfoHeaderView0" = "複製成功";
"XPMineUserInfoHeaderView1" = "我是個默認簽名";
"XPMineUserInfoHeaderView2" = "%ld粉絲";
@@ -545,9 +537,10 @@
"XPIAPRechargeViewController7" = "提示";
"XPIAPRechargeViewController8" = "儲值失敗,請聯系客服處理~";
"XPIAPRechargeViewController9" = "聯系客服";
"XPIAPRechargeViewController10" = "值失败。当前仅支持行iOS15及以上系的手机进行储值,请升级系统版本后重试。";
"XPIAPRechargeViewController10" = "值失敗。當前僅支持行iOS15及以上系的手機進行儲值,請升級系統版本後重試。";
"XPIAPRechargeViewController11" = "請選擇需要儲值鉆石的數量";
"XPMineRechargeViewController0" = "購買失敗";
"XPMineRechargeViewController1" = "出現未知錯誤,請重新嘗試";
"XPMineRechargeViewController2" = "《用戶充值協議";
@@ -1027,10 +1020,11 @@
"XPRoomInsideRecommendEmptyCell0" = "努力尋找合適房間中";
///XPRoomRecommendView.m
"XPRoomRecommendView0" = "屏蔽舉報";
"XPRoomRecommendView1" = "收起房間";
"XPRoomRecommendView2" = "退出房間";
"XPRoomRecommendView3" = "為你推薦";;
"XPRoomRecommendView3" = "為你推薦";
"XPAnchorFansTeamEntranceView0" = "粉絲團(%ld";
"XPAnchorFansTeamEntranceView1" = "開通粉絲團";
@@ -1075,7 +1069,7 @@
"XPRoomFunctionContainerView11" = "進入嘉賓交流環節?";
"XPRoomFunctionContainerView12" = "暫未設置話題";
"XPRoomFunctionContainerView13" = "開始選擇>";
"XPRoomFunctionContainerView18" = "戲中不可切換戲或玩法!";
"XPRoomFunctionContainerView18" = "戲中不可切換戲或玩法!";
"XPRoomBackContainerView0" = "貴族專屬背景圖加載失敗";
"XPRoomBackContainerView1" = "個播背景圖加載失敗";
@@ -1245,11 +1239,12 @@
"AnchorPKStageView0" = "規則";
///RoomHeaderView.m
"RoomHeaderView0" = "在線:%ld ID:%ld";
"RoomHeaderView1" = "在線:%ld ID:%ld";
"RoomHeaderView2" = "在線:%ld ID:%ld";
"RoomHeaderView3" = "複製鏈接";
"RoomHeaderView4" = "來peko開黑交友玩戲";
"RoomHeaderView4" = "來Peko開黑交友玩戲";
"RoomHeaderView5" = "人美聲甜帶上分,一起來玩吧~";
"RoomHeaderView6" = "收藏成功";
"RoomHeaderView7" = "分享成功";
@@ -1623,6 +1618,7 @@
"XPRoomAnchorRankBannerView0" = "恭喜 %@ 成為上時段 小時榜TOP1";
"XPRoomAnchorRankBannerView1" = "小時榜TOP1";
"XPRoomLuckyBigPrizeView0" = "恭喜";
"XPRoomLuckyBigPrizeView1" = "在%@幸運禮物中歐氣爆棚開出了價值";
@@ -2950,24 +2946,24 @@
"SudCommon15" = "重覆加入";
"SudCommon16" = "位置上有人";
"SudCommon17" = "退出錯誤";
"SudCommon18" = "不在戲位";
"SudCommon19" = "準備或戲狀態不能退出";
"SudCommon18" = "不在戲位";
"SudCommon19" = "準備或戲狀態不能退出";
"SudCommon20" = "準備錯誤";
"SudCommon21" = "取消準備錯誤";
"SudCommon22" = "開始戲錯誤";
"SudCommon23" = "戲已開始";
"SudCommon24" = "隊長才能開始戲";
"SudCommon22" = "開始戲錯誤";
"SudCommon23" = "戲已開始";
"SudCommon24" = "隊長才能開始戲";
"SudCommon25" = "有人未準備";
"SudCommon26" = "開始戲的人數不足";
"SudCommon26" = "開始戲的人數不足";
"SudCommon27" = "踢人錯誤";
"SudCommon28" = "隊長才能踢人";
"SudCommon29" = "戰鬥房間不能踢人";
"SudCommon30" = "換隊長錯誤";
"SudCommon31" = "逃跑錯誤";
"SudCommon32" = "逃跑時戲已結束";
"SudCommon33" = "逃跑時玩家已不在戲中";
"SudCommon32" = "逃跑時戲已結束";
"SudCommon33" = "逃跑時玩家已不在戲中";
"SudCommon34" = "解散錯誤";
"SudCommon35" = "解散時戲已結束";
"SudCommon35" = "解散時戲已結束";
"SudCommon36" = "隊長才能解散";
@@ -2976,7 +2972,7 @@
"XPHomeLittleGameViewController1" = "快速匹配";
///XPHomeLittleGameTableViewCell.m
"XPHomeLittleGameTableViewCell0" = "戲中";
"XPHomeLittleGameTableViewCell0" = "戲中";
"XPHomeLittleGameTableViewCell1" = "等待中";
"XPHomeLittleGameTableViewCell2" = "進房";
///XPLittleGameRoomListView.m
@@ -2992,19 +2988,19 @@
"XPRoomLittleGameContainerView0" = "玩家: 加入狀態";
"XPRoomLittleGameContainerView1" = "玩家: 準備狀態";
"XPRoomLittleGameContainerView2" = "玩家: 隊長狀態";
"XPRoomLittleGameContainerView3" = "玩家: 戲狀態";
"XPRoomLittleGameContainerView3" = "玩家: 戲狀態";
"XPRoomLittleGameContainerView4" = "你畫我猜 玩家: 選詞中";
"XPRoomLittleGameContainerView5" = "你畫我猜 玩家: 作畫中";
"XPRoomLittleGameContainerView6" = "你畫我猜 玩家: 錯誤答";
"XPRoomLittleGameContainerView7" = "你畫我猜 玩家: 總積分";
"XPRoomLittleGameContainerView8" = "你畫我猜 玩家: 本次積分";
"XPRoomLittleGameContainerView9" = "%@退出了戲";
"XPRoomLittleGameContainerView9" = "%@退出了戲";
//LittleGameStageView.m
"LittleGameStageView0" = "戲中不可以換麥!";
"LittleGameStageView0" = "戲中不可以換麥!";
///LittleGameScrollStageView.m
"LittleGameScrollStageView0" = "戲中不可以換麥!";
"LittleGameScrollStageView0" = "戲中不可以換麥!";
///XPMineGameTableViewCell.m
"XPMineGameTableViewCell0" = "休閑戲";
"XPMineGameTableViewCell0" = "休閑戲";
@@ -3052,11 +3048,9 @@
"PIMessageContentServiceReplyView4"="客服WeChat: %@ ";
"PIMessageContentServiceReplyView5"="客服Line%@ ";
"PIMessageContentServiceReplyView6"="3.如遇提示\"儲值失敗,請聯系客服處理~\",請\n添加客服進行處理";
///XPRoomTarrowBannerView
"XPRoomTarrowBannerView0"="恭喜%@在幸運塔羅中運氣爆發 獲得%@鉆石";
///XPHomeGameView
"XPHomeGameView0"="新建房間";
"XPHomeGameView1"="創建房間";
///XPSessionMainViewController.m
@@ -3074,6 +3068,16 @@
///XPGiftFreeItemCell
"XPGiftFreeItemCell0"="免費禮物";
"XPGiftFreeItemCell1"="禮物名稱";
///SessionDiscoverNewTableViewCell.m
"SessionDiscoverNewTableViewCell0" = "發現萌新";
///XPMineSimpleUserInfoHeaderView
"XPMineSimpleUserInfoHeaderView0"="這個人很懶,還沒有簽名嗷~";
"XPMineSimpleUserInfoHeaderView1"="這個人很懶,還沒有簽名嗷~";
"XPMineSimpleUserInfoHeaderView2"="直播中";
"XPMineSimpleUserInfoHeaderView3"="禮物墻";
"XPMineSimpleUserInfoHeaderView4"="禮物墻";
"XPMineSimpleUserInfoHeaderView5"="幸運禮物";
"XPMineSimpleUserInfoHeaderView6"="動態";
///不能腳本生成的
"App_Common_And" = "和";
"App_Common_Male" = "男";