From 74dbc6a5fd34f9f8e1ae3c8a3539b59103dfe891 Mon Sep 17 00:00:00 2001 From: liyuhua <15626451870@163.com> Date: Tue, 26 Sep 2023 17:57:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- YuMi.xcodeproj/project.pbxproj | 6 + .../InputView/InputView/QEmotionHelper.m | 281 +++++++- YuMi/CustomUI/ShareView/XPShareView.m | 1 + YuMi/Global/YUMIConstant.m | 2 +- .../View/Cell/XPSessionFindNewTableViewCell.m | 1 + .../Cell/XPSessionSayHelloTableViewCell.m | 1 + .../Cell/SessionUserInfoTableViewCell.m | 14 +- .../SessionDiscoverNewTableViewCell.h | 18 + .../SessionDiscoverNewTableViewCell.m | 126 ++++ .../View/SessionList/SessionListCell.m | 17 +- .../SessionList/SessionListViewController.m | 605 ++++++++---------- .../Presenter/XPMineUserInfoEditPresenter.m | 2 +- .../Friend/XPMineAttentionTableViewCell.m | 382 ++++++----- .../Cell/Friend/XPMineFansTableViewCell.m | 394 ++++++------ .../Cell/Friend/XPMineFriendTableViewCell.m | 263 ++++---- .../Cell/Visitor/XPMineVisitorTableViewCell.m | 2 +- .../Cell/XPDressShopSearchTableViewCell.m | 1 + .../Friend/XPMineAttentionViewController.m | 268 ++++---- .../View/Friend/XPMineContactViewController.m | 1 + .../View/Friend/XPMineFansViewController.m | 275 ++++---- .../View/Friend/XPMineFriendViewController.m | 166 +++-- .../XPMineExchangeAuthorityCell.m | 1 + .../XPGuildSearchSuperAdminTableViewCell.m | 1 + .../View/Cell/XPClanMemberTableViewCell.m | 1 + .../XPMineGuildSearchMemberTableViewCell.m | 1 + .../XPMineUserInfoEditViewController.m | 2 + .../MineInfo/XPMineUserInfoHeaderView.m | 1 + .../YMMine/View/SubViews/XPMineHeadView.m | 6 +- .../Cell/XPMonentsInteractiveTableViewCell.m | 2 +- .../View/SubViews/XPMonentsUserInfoView.m | 1 + .../View/Cell/XPNewHomePartyTableViewCell.m | 1 + .../XPNewHomePlayItemCollectionViewCell.m | 2 +- .../View/Cell/XPSearchListTableViewCell.m | 2 + .../View/AnimationView/XPRoomAnimationView.m | 6 + .../View/Cell/XPArrangeMicTableViewCell.m | 1 + .../View/XPArrangeMicViewController.m | 4 +- .../XPRoomFunctionContainerView.m | 33 +- .../View/XPCandyTreeConfirmBuyNumView.m | 2 +- .../View/XPCandyTreeViewController.m | 14 + .../View/RoomHeaderView/RoomHeaderView.m | 2 +- .../View/Cell/XPRoomOnlineTableViewCell.m | 2 + .../View/StageView/MicroView/MicroView.m | 1 + .../UserCard/View/XPUserCardViewController.m | 1 + .../YMRoom/View/XPRoomViewController.m | 17 +- .../View/AnchorCard/XPAnchorCardView.m | 1 + .../YMTabbar/View/TabbarViewController.m | 2 +- YuMi/Tools/Bundle/NSBundle+Localizable.m | 7 +- YuMi/zh-Hans.lproj/Localizable.strings | 10 + YuMi/zh-Hant.lproj/Localizable.strings | 62 +- 49 files changed, 1703 insertions(+), 1309 deletions(-) create mode 100644 YuMi/Modules/YMMessage/View/SessionList/SessionDiscoverNewTableViewCell.h create mode 100644 YuMi/Modules/YMMessage/View/SessionList/SessionDiscoverNewTableViewCell.m diff --git a/YuMi.xcodeproj/project.pbxproj b/YuMi.xcodeproj/project.pbxproj index 38b7df63..58d1674a 100644 --- a/YuMi.xcodeproj/project.pbxproj +++ b/YuMi.xcodeproj/project.pbxproj @@ -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 = ""; }; 23C7C0B52A7CD7B000802205 /* XPNewMineGuildItemView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNewMineGuildItemView.h; sourceTree = ""; }; 23C7C0B62A7CD7B000802205 /* XPNewMineGuildItemView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewMineGuildItemView.m; sourceTree = ""; }; + 23E45C032AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SessionDiscoverNewTableViewCell.h; sourceTree = ""; }; + 23E45C042AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SessionDiscoverNewTableViewCell.m; sourceTree = ""; }; 23E9E9932A80C39E00B792F2 /* XPMineGuildPersonalBillStatisVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillStatisVC.h; sourceTree = ""; }; 23E9E9942A80C39F00B792F2 /* XPMineGuildPersonalBillRecordVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildPersonalBillRecordVC.m; sourceTree = ""; }; 23E9E9952A80C3A000B792F2 /* XPMineGuildPersonalBillRecordVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillRecordVC.h; sourceTree = ""; }; @@ -4715,6 +4718,8 @@ 18A61BE7274F9CF000A09A54 /* SessionListViewController.m */, 18EE3FDD2750C1F700A452BF /* SessionListCell.h */, 18EE3FDE2750C1F700A452BF /* SessionListCell.m */, + 23E45C032AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.h */, + 23E45C042AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m */, ); path = SessionList; sourceTree = ""; @@ -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 */, diff --git a/YuMi/CustomUI/InputView/InputView/QEmotionHelper.m b/YuMi/CustomUI/InputView/InputView/QEmotionHelper.m index 42fca428..156fe5f3 100644 --- a/YuMi/CustomUI/InputView/InputView/QEmotionHelper.m +++ b/YuMi/CustomUI/InputView/InputView/QEmotionHelper.m @@ -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 *emojis = [self.regularExpression matchesInString:text options:NSMatchingWithTransparentBounds range:NSMakeRange(0, [text length])]; @@ -107,9 +109,14 @@ #pragma mark - public //把只是单纯的一个表情转为AttributedString //imageKey:[微笑] ,font:label的Font,返回😊 -//把 @"[微笑]" 转为 @"😊" +//把 @@"[微笑]", 转为 @"😊" - (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) { //不从缓存中取AttributedString,(因为输入栏中的AttributedString如果是同一个对象,在ios12上会有长按bug) 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 diff --git a/YuMi/CustomUI/ShareView/XPShareView.m b/YuMi/CustomUI/ShareView/XPShareView.m index eaff0399..c78f8e74 100644 --- a/YuMi/CustomUI/ShareView/XPShareView.m +++ b/YuMi/CustomUI/ShareView/XPShareView.m @@ -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; diff --git a/YuMi/Global/YUMIConstant.m b/YuMi/Global/YUMIConstant.m index e8047312..b6c77af7 100644 --- a/YuMi/Global/YUMIConstant.m +++ b/YuMi/Global/YUMIConstant.m @@ -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){ diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/Cell/XPSessionFindNewTableViewCell.m b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/XPSessionFindNewTableViewCell.m index f95190a6..15be133b 100644 --- a/YuMi/Modules/YMMessage/View/FindNew/View/Cell/XPSessionFindNewTableViewCell.m +++ b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/XPSessionFindNewTableViewCell.m @@ -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; diff --git a/YuMi/Modules/YMMessage/View/SayHello/View/Cell/XPSessionSayHelloTableViewCell.m b/YuMi/Modules/YMMessage/View/SayHello/View/Cell/XPSessionSayHelloTableViewCell.m index f8e7aa20..e413977e 100644 --- a/YuMi/Modules/YMMessage/View/SayHello/View/Cell/XPSessionSayHelloTableViewCell.m +++ b/YuMi/Modules/YMMessage/View/SayHello/View/Cell/XPSessionSayHelloTableViewCell.m @@ -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; diff --git a/YuMi/Modules/YMMessage/View/Session/Cell/SessionUserInfoTableViewCell.m b/YuMi/Modules/YMMessage/View/Session/Cell/SessionUserInfoTableViewCell.m index ea30b5ab..5ae338ff 100644 --- a/YuMi/Modules/YMMessage/View/Session/Cell/SessionUserInfoTableViewCell.m +++ b/YuMi/Modules/YMMessage/View/Session/Cell/SessionUserInfoTableViewCell.m @@ -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; diff --git a/YuMi/Modules/YMMessage/View/SessionList/SessionDiscoverNewTableViewCell.h b/YuMi/Modules/YMMessage/View/SessionList/SessionDiscoverNewTableViewCell.h new file mode 100644 index 00000000..66a739fe --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionList/SessionDiscoverNewTableViewCell.h @@ -0,0 +1,18 @@ +// +// SessionDiscoverNewTableViewCell.h +// xplan-ios +// +// Created by 冯硕 on 2022/6/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SessionDiscoverNewTableViewCell : UITableViewCell +///是否隐藏小红点 +@property (nonatomic,assign) BOOL hiddenDotView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SessionList/SessionDiscoverNewTableViewCell.m b/YuMi/Modules/YMMessage/View/SessionList/SessionDiscoverNewTableViewCell.m new file mode 100644 index 00000000..6076848a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionList/SessionDiscoverNewTableViewCell.m @@ -0,0 +1,126 @@ +// +// SessionDiscoverNewTableViewCell.m +// xplan-ios +// +// Created by 冯硕 on 2022/6/10. +// + +#import "SessionDiscoverNewTableViewCell.h" +///Third +#import +///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 diff --git a/YuMi/Modules/YMMessage/View/SessionList/SessionListCell.m b/YuMi/Modules/YMMessage/View/SessionList/SessionListCell.m index cd27ed2b..a9e11827 100644 --- a/YuMi/Modules/YMMessage/View/SessionList/SessionListCell.m +++ b/YuMi/Modules/YMMessage/View/SessionList/SessionListCell.m @@ -11,9 +11,9 @@ #import "NIMMessageUtils.h" #import "NIMTimeUtils.h" #import "UIView+NIM.h" - +#import "QEmotionHelper.h" #import "DJDKMIMOMColor.h" - +#import #import @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; diff --git a/YuMi/Modules/YMMessage/View/SessionList/SessionListViewController.m b/YuMi/Modules/YMMessage/View/SessionList/SessionListViewController.m index 478c2032..df5f1c90 100644 --- a/YuMi/Modules/YMMessage/View/SessionList/SessionListViewController.m +++ b/YuMi/Modules/YMMessage/View/SessionList/SessionListViewController.m @@ -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 @interface SessionListViewController () + //@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 *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 * 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 * _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 * _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 * _Nullable recentSessions) { - if (error) { - // handle error - return; - } - - }]; + [self.recentSessions removeAllObjects]; + _recentSessions = [[NIMSDK sharedSDK].conversationManager.allRecentSessions mutableCopy]; + __block int unreadCount = 0; + NSMutableArray * 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 * _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 *)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 *)recentSessions { - if (!_recentSessions) { - _recentSessions = [NSMutableArray array]; - } - return _recentSessions; + if (!_recentSessions) { + _recentSessions = [NSMutableArray array]; + } + return _recentSessions; } -- (NSMutableDictionary *)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 diff --git a/YuMi/Modules/YMMine/Presenter/XPMineUserInfoEditPresenter.m b/YuMi/Modules/YMMine/Presenter/XPMineUserInfoEditPresenter.m index 9f02f8eb..c9786ec8 100644 --- a/YuMi/Modules/YMMine/Presenter/XPMineUserInfoEditPresenter.m +++ b/YuMi/Modules/YMMine/Presenter/XPMineUserInfoEditPresenter.m @@ -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]; } diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/XPMineAttentionTableViewCell.m b/YuMi/Modules/YMMine/View/Cell/Friend/XPMineAttentionTableViewCell.m index 56e5cbba..9979a4c7 100644 --- a/YuMi/Modules/YMMine/View/Cell/Friend/XPMineAttentionTableViewCell.m +++ b/YuMi/Modules/YMMine/View/Cell/Friend/XPMineAttentionTableViewCell.m @@ -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 ///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 diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/XPMineFansTableViewCell.m b/YuMi/Modules/YMMine/View/Cell/Friend/XPMineFansTableViewCell.m index 076fb19c..e00b1372 100644 --- a/YuMi/Modules/YMMine/View/Cell/Friend/XPMineFansTableViewCell.m +++ b/YuMi/Modules/YMMine/View/Cell/Friend/XPMineFansTableViewCell.m @@ -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 ///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 diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/XPMineFriendTableViewCell.m b/YuMi/Modules/YMMine/View/Cell/Friend/XPMineFriendTableViewCell.m index 42605bbd..dff5db70 100644 --- a/YuMi/Modules/YMMine/View/Cell/Friend/XPMineFriendTableViewCell.m +++ b/YuMi/Modules/YMMine/View/Cell/Friend/XPMineFriendTableViewCell.m @@ -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 diff --git a/YuMi/Modules/YMMine/View/Cell/Visitor/XPMineVisitorTableViewCell.m b/YuMi/Modules/YMMine/View/Cell/Visitor/XPMineVisitorTableViewCell.m index f4bdb553..3d437b68 100644 --- a/YuMi/Modules/YMMine/View/Cell/Visitor/XPMineVisitorTableViewCell.m +++ b/YuMi/Modules/YMMine/View/Cell/Visitor/XPMineVisitorTableViewCell.m @@ -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 { diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/XPDressShopSearchTableViewCell.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/XPDressShopSearchTableViewCell.m index f57352eb..84ff9568 100644 --- a/YuMi/Modules/YMMine/View/DressUp/View/Cell/XPDressShopSearchTableViewCell.m +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/XPDressShopSearchTableViewCell.m @@ -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; } } diff --git a/YuMi/Modules/YMMine/View/Friend/XPMineAttentionViewController.m b/YuMi/Modules/YMMine/View/Friend/XPMineAttentionViewController.m index 5dbc754e..f84b077c 100644 --- a/YuMi/Modules/YMMine/View/Friend/XPMineAttentionViewController.m +++ b/YuMi/Modules/YMMine/View/Friend/XPMineAttentionViewController.m @@ -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 #import ///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 * 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 * 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 diff --git a/YuMi/Modules/YMMine/View/Friend/XPMineContactViewController.m b/YuMi/Modules/YMMine/View/Friend/XPMineContactViewController.m index 432eee49..10e36390 100644 --- a/YuMi/Modules/YMMine/View/Friend/XPMineContactViewController.m +++ b/YuMi/Modules/YMMine/View/Friend/XPMineContactViewController.m @@ -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]; diff --git a/YuMi/Modules/YMMine/View/Friend/XPMineFansViewController.m b/YuMi/Modules/YMMine/View/Friend/XPMineFansViewController.m index 686c1f21..b7757e93 100644 --- a/YuMi/Modules/YMMine/View/Friend/XPMineFansViewController.m +++ b/YuMi/Modules/YMMine/View/Friend/XPMineFansViewController.m @@ -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 #import -///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 () +#import +@interface XPMineFansViewController () ///列表 @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 diff --git a/YuMi/Modules/YMMine/View/Friend/XPMineFriendViewController.m b/YuMi/Modules/YMMine/View/Friend/XPMineFriendViewController.m index ec92acad..d9ffa645 100644 --- a/YuMi/Modules/YMMine/View/Friend/XPMineFriendViewController.m +++ b/YuMi/Modules/YMMine/View/Friend/XPMineFriendViewController.m @@ -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 #import ///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 diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/XPMineExchangeAuthorityCell.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/XPMineExchangeAuthorityCell.m index 71262638..7f1df4b3 100644 --- a/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/XPMineExchangeAuthorityCell.m +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/XPMineExchangeAuthorityCell.m @@ -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; diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/XPGuildSearchSuperAdminTableViewCell.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/XPGuildSearchSuperAdminTableViewCell.m index f8e88deb..88e43194 100644 --- a/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/XPGuildSearchSuperAdminTableViewCell.m +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/XPGuildSearchSuperAdminTableViewCell.m @@ -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){ diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/XPClanMemberTableViewCell.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/XPClanMemberTableViewCell.m index 685269b9..42bd8430 100644 --- a/YuMi/Modules/YMMine/View/Guild/View/Cell/XPClanMemberTableViewCell.m +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/XPClanMemberTableViewCell.m @@ -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; diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/XPMineGuildSearchMemberTableViewCell.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/XPMineGuildSearchMemberTableViewCell.m index e01ba60c..7d9eb79a 100644 --- a/YuMi/Modules/YMMine/View/Guild/View/Cell/XPMineGuildSearchMemberTableViewCell.m +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/XPMineGuildSearchMemberTableViewCell.m @@ -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) { diff --git a/YuMi/Modules/YMMine/View/MineInfo/XPMineUserInfoEditViewController.m b/YuMi/Modules/YMMine/View/MineInfo/XPMineUserInfoEditViewController.m index 4f59dbfa..a7c3d62d 100644 --- a/YuMi/Modules/YMMine/View/MineInfo/XPMineUserInfoEditViewController.m +++ b/YuMi/Modules/YMMine/View/MineInfo/XPMineUserInfoEditViewController.m @@ -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 diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m b/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m index 7547813d..fda72d0a 100644 --- a/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m @@ -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; diff --git a/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.m b/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.m index cc244395..0f6c79f7 100644 --- a/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.m +++ b/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.m @@ -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]; diff --git a/YuMi/Modules/YMMonents/View/Cell/XPMonentsInteractiveTableViewCell.m b/YuMi/Modules/YMMonents/View/Cell/XPMonentsInteractiveTableViewCell.m index e31f5af7..585f80ea 100644 --- a/YuMi/Modules/YMMonents/View/Cell/XPMonentsInteractiveTableViewCell.m +++ b/YuMi/Modules/YMMonents/View/Cell/XPMonentsInteractiveTableViewCell.m @@ -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; diff --git a/YuMi/Modules/YMMonents/View/SubViews/XPMonentsUserInfoView.m b/YuMi/Modules/YMMonents/View/SubViews/XPMonentsUserInfoView.m index f3a82136..92e8d0dd 100644 --- a/YuMi/Modules/YMMonents/View/SubViews/XPMonentsUserInfoView.m +++ b/YuMi/Modules/YMMonents/View/SubViews/XPMonentsUserInfoView.m @@ -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; diff --git a/YuMi/Modules/YMNewHome/View/Cell/XPNewHomePartyTableViewCell.m b/YuMi/Modules/YMNewHome/View/Cell/XPNewHomePartyTableViewCell.m index da608bba..f73981fd 100644 --- a/YuMi/Modules/YMNewHome/View/Cell/XPNewHomePartyTableViewCell.m +++ b/YuMi/Modules/YMNewHome/View/Cell/XPNewHomePartyTableViewCell.m @@ -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; diff --git a/YuMi/Modules/YMNewHome/View/Cell/XPNewHomePlayItemCollectionViewCell.m b/YuMi/Modules/YMNewHome/View/Cell/XPNewHomePlayItemCollectionViewCell.m index 9035962e..edb79db1 100644 --- a/YuMi/Modules/YMNewHome/View/Cell/XPNewHomePlayItemCollectionViewCell.m +++ b/YuMi/Modules/YMNewHome/View/Cell/XPNewHomePlayItemCollectionViewCell.m @@ -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)); diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/XPSearchListTableViewCell.m b/YuMi/Modules/YMNewHome/View/Search/View/Cell/XPSearchListTableViewCell.m index a5f1944f..e8b4735a 100644 --- a/YuMi/Modules/YMNewHome/View/Search/View/Cell/XPSearchListTableViewCell.m +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/XPSearchListTableViewCell.m @@ -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 { diff --git a/YuMi/Modules/YMRoom/View/AnimationView/XPRoomAnimationView.m b/YuMi/Modules/YMRoom/View/AnimationView/XPRoomAnimationView.m index a049a2f1..7b4354a5 100644 --- a/YuMi/Modules/YMRoom/View/AnimationView/XPRoomAnimationView.m +++ b/YuMi/Modules/YMRoom/View/AnimationView/XPRoomAnimationView.m @@ -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]; } } } diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/XPArrangeMicTableViewCell.m b/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/XPArrangeMicTableViewCell.m index b1c2b3b1..67a51b6a 100644 --- a/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/XPArrangeMicTableViewCell.m +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/XPArrangeMicTableViewCell.m @@ -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) { diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/View/XPArrangeMicViewController.m b/YuMi/Modules/YMRoom/View/ArrangeMic/View/XPArrangeMicViewController.m index 4912f77f..46f948db 100644 --- a/YuMi/Modules/YMRoom/View/ArrangeMic/View/XPArrangeMicViewController.m +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/View/XPArrangeMicViewController.m @@ -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; diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m b/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m index b1b20856..c9b4134a 100644 --- a/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m @@ -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 { diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeConfirmBuyNumView.m b/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeConfirmBuyNumView.m index c6a7871e..400e487b 100644 --- a/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeConfirmBuyNumView.m +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeConfirmBuyNumView.m @@ -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]; diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeViewController.m b/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeViewController.m index 77ddab5e..8c232ea0 100644 --- a/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeViewController.m +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/XPCandyTreeViewController.m @@ -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]; diff --git a/YuMi/Modules/YMRoom/View/RoomHeaderView/RoomHeaderView.m b/YuMi/Modules/YMRoom/View/RoomHeaderView/RoomHeaderView.m index edb897a7..48376393 100644 --- a/YuMi/Modules/YMRoom/View/RoomHeaderView/RoomHeaderView.m +++ b/YuMi/Modules/YMRoom/View/RoomHeaderView/RoomHeaderView.m @@ -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); diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/XPRoomOnlineTableViewCell.m b/YuMi/Modules/YMRoom/View/Setting/View/Cell/XPRoomOnlineTableViewCell.m index 6e819389..96daccab 100644 --- a/YuMi/Modules/YMRoom/View/Setting/View/Cell/XPRoomOnlineTableViewCell.m +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/XPRoomOnlineTableViewCell.m @@ -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; diff --git a/YuMi/Modules/YMRoom/View/StageView/MicroView/MicroView.m b/YuMi/Modules/YMRoom/View/StageView/MicroView/MicroView.m index f59d4650..a81b89f4 100644 --- a/YuMi/Modules/YMRoom/View/StageView/MicroView/MicroView.m +++ b/YuMi/Modules/YMRoom/View/StageView/MicroView/MicroView.m @@ -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 { diff --git a/YuMi/Modules/YMRoom/View/UserCard/View/XPUserCardViewController.m b/YuMi/Modules/YMRoom/View/UserCard/View/XPUserCardViewController.m index f68be8a9..280c5068 100644 --- a/YuMi/Modules/YMRoom/View/UserCard/View/XPUserCardViewController.m +++ b/YuMi/Modules/YMRoom/View/UserCard/View/XPUserCardViewController.m @@ -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) { diff --git a/YuMi/Modules/YMRoom/View/XPRoomViewController.m b/YuMi/Modules/YMRoom/View/XPRoomViewController.m index 831f8249..f10b609d 100644 --- a/YuMi/Modules/YMRoom/View/XPRoomViewController.m +++ b/YuMi/Modules/YMRoom/View/XPRoomViewController.m @@ -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; diff --git a/YuMi/Modules/YMTabbar/View/AnchorCard/XPAnchorCardView.m b/YuMi/Modules/YMTabbar/View/AnchorCard/XPAnchorCardView.m index e3a5bda3..7b90d5bd 100644 --- a/YuMi/Modules/YMTabbar/View/AnchorCard/XPAnchorCardView.m +++ b/YuMi/Modules/YMTabbar/View/AnchorCard/XPAnchorCardView.m @@ -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) { diff --git a/YuMi/Modules/YMTabbar/View/TabbarViewController.m b/YuMi/Modules/YMTabbar/View/TabbarViewController.m index a5a09e22..4baa3f14 100644 --- a/YuMi/Modules/YMTabbar/View/TabbarViewController.m +++ b/YuMi/Modules/YMTabbar/View/TabbarViewController.m @@ -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; } diff --git a/YuMi/Tools/Bundle/NSBundle+Localizable.m b/YuMi/Tools/Bundle/NSBundle+Localizable.m index 52c0b9f4..41896f44 100644 --- a/YuMi/Tools/Bundle/NSBundle+Localizable.m +++ b/YuMi/Tools/Bundle/NSBundle+Localizable.m @@ -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 diff --git a/YuMi/zh-Hans.lproj/Localizable.strings b/YuMi/zh-Hans.lproj/Localizable.strings index 59919dda..c9c7c936 100644 --- a/YuMi/zh-Hans.lproj/Localizable.strings +++ b/YuMi/zh-Hans.lproj/Localizable.strings @@ -3068,6 +3068,16 @@ ///XPGiftFreeItemCell "XPGiftFreeItemCell0"="免费礼物"; "XPGiftFreeItemCell1"="礼物名称"; +///SessionDiscoverNewTableViewCell.m +"SessionDiscoverNewTableViewCell0" = "发现萌新"; +///XPMineSimpleUserInfoHeaderView +"XPMineSimpleUserInfoHeaderView0"="這個人很懶,還沒有簽名嗷~"; +"XPMineSimpleUserInfoHeaderView1"="這個人很懶,還沒有簽名嗷~"; +"XPMineSimpleUserInfoHeaderView2"="直播中"; +"XPMineSimpleUserInfoHeaderView3"="礼物墙"; +"XPMineSimpleUserInfoHeaderView4"="礼物墙"; +"XPMineSimpleUserInfoHeaderView5"="幸运礼物"; +"XPMineSimpleUserInfoHeaderView6"="动态"; ///不能脚本生成的 "App_Common_And" = "和"; "App_Common_Male" = "男"; diff --git a/YuMi/zh-Hant.lproj/Localizable.strings b/YuMi/zh-Hant.lproj/Localizable.strings index b2648ca2..1e337dd5 100644 --- a/YuMi/zh-Hant.lproj/Localizable.strings +++ b/YuMi/zh-Hant.lproj/Localizable.strings @@ -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" = "男";