修复bug
This commit is contained in:
@@ -217,6 +217,7 @@
|
||||
23B2AEC42A6516C200543D17 /* LoginForgetPasswordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2AEC22A6516C200543D17 /* LoginForgetPasswordViewController.m */; };
|
||||
23BA165B2A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23BA165A2A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.m */; };
|
||||
23C7C0B72A7CD7B000802205 /* XPNewMineGuildItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C7C0B62A7CD7B000802205 /* XPNewMineGuildItemView.m */; };
|
||||
23E45C052AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E45C042AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m */; };
|
||||
23E9E9972A80C3A100B792F2 /* XPMineGuildPersonalBillRecordVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9E9942A80C39F00B792F2 /* XPMineGuildPersonalBillRecordVC.m */; };
|
||||
23E9E9982A80C3A100B792F2 /* XPMineGuildPersonalBillStatisVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9E9962A80C3A100B792F2 /* XPMineGuildPersonalBillStatisVC.m */; };
|
||||
23E9E99B2A80C40000B792F2 /* XPMineGuildPersonalBillRecordHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9E9992A80C3FF00B792F2 /* XPMineGuildPersonalBillRecordHeadView.m */; };
|
||||
@@ -1827,6 +1828,8 @@
|
||||
23BA165A2A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIBaseAnimationViewModel.m; sourceTree = "<group>"; };
|
||||
23C7C0B52A7CD7B000802205 /* XPNewMineGuildItemView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNewMineGuildItemView.h; sourceTree = "<group>"; };
|
||||
23C7C0B62A7CD7B000802205 /* XPNewMineGuildItemView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewMineGuildItemView.m; sourceTree = "<group>"; };
|
||||
23E45C032AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SessionDiscoverNewTableViewCell.h; sourceTree = "<group>"; };
|
||||
23E45C042AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SessionDiscoverNewTableViewCell.m; sourceTree = "<group>"; };
|
||||
23E9E9932A80C39E00B792F2 /* XPMineGuildPersonalBillStatisVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillStatisVC.h; sourceTree = "<group>"; };
|
||||
23E9E9942A80C39F00B792F2 /* XPMineGuildPersonalBillRecordVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildPersonalBillRecordVC.m; sourceTree = "<group>"; };
|
||||
23E9E9952A80C3A000B792F2 /* XPMineGuildPersonalBillRecordVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillRecordVC.h; sourceTree = "<group>"; };
|
||||
@@ -4715,6 +4718,8 @@
|
||||
18A61BE7274F9CF000A09A54 /* SessionListViewController.m */,
|
||||
18EE3FDD2750C1F700A452BF /* SessionListCell.h */,
|
||||
18EE3FDE2750C1F700A452BF /* SessionListCell.m */,
|
||||
23E45C032AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.h */,
|
||||
23E45C042AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m */,
|
||||
);
|
||||
path = SessionList;
|
||||
sourceTree = "<group>";
|
||||
@@ -11172,6 +11177,7 @@
|
||||
E8998D852859B4FA00C68558 /* XPMineUserInfoGiftView.m in Sources */,
|
||||
186A536B26FC6F2E00D67B2C /* XPShareItemCell.m in Sources */,
|
||||
237B94C02A984DA7007853E3 /* Api+RoomTrumpet.m in Sources */,
|
||||
23E45C052AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m in Sources */,
|
||||
9B42869228C1AED4009034D2 /* XPReceiveRedPacketModel.m in Sources */,
|
||||
E8B846C526FDB41A00A777FE /* XPMineUserInfolbumPresenter.m in Sources */,
|
||||
9BFB101F2897CC4300B3985E /* XPAnchorCardView.m in Sources */,
|
||||
|
@@ -22,8 +22,10 @@
|
||||
|
||||
//把[微笑]转为😊的正则
|
||||
@property (strong, nonatomic) NSRegularExpression * regularExpression;
|
||||
|
||||
|
||||
///繁体
|
||||
@property(nonatomic,copy) NSArray *emojiHantList;
|
||||
///简体
|
||||
@property(nonatomic,copy) NSArray *emojiHansList;
|
||||
@end
|
||||
|
||||
@implementation QEmotionHelper
|
||||
@@ -72,7 +74,7 @@
|
||||
return _cacheTotalImageDictionary;
|
||||
}
|
||||
|
||||
//把整段String:@"害~你好[微笑]" 转为 @"害~你好😊"
|
||||
//把整段String:@"害~你好[微笑]", 转为 @"害~你好😊"
|
||||
- (NSMutableAttributedString *)attributedStringByText:(NSString *)text font:(UIFont *)font {
|
||||
|
||||
NSArray<NSTextCheckingResult *> *emojis = [self.regularExpression matchesInString:text options:NSMatchingWithTransparentBounds range:NSMakeRange(0, [text length])];
|
||||
@@ -107,9 +109,14 @@
|
||||
#pragma mark - public
|
||||
//把只是单纯的一个表情转为AttributedString
|
||||
//imageKey:[微笑] ,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
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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){
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// SessionDiscoverNewTableViewCell.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/6/10.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface SessionDiscoverNewTableViewCell : UITableViewCell
|
||||
///是否隐藏小红点
|
||||
@property (nonatomic,assign) BOOL hiddenDotView;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,126 @@
|
||||
//
|
||||
// SessionDiscoverNewTableViewCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by 冯硕 on 2022/6/10.
|
||||
//
|
||||
|
||||
#import "SessionDiscoverNewTableViewCell.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
|
||||
#import "NetImageView.h"
|
||||
|
||||
@interface SessionDiscoverNewTableViewCell ()
|
||||
///显示logo
|
||||
@property (nonatomic,strong) NetImageView *logoImageView;
|
||||
///标题内容
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///箭头
|
||||
@property (nonatomic,strong) UIImageView *arrowImageView;
|
||||
|
||||
///红点
|
||||
@property (nonatomic,strong) UIView * dotView;
|
||||
@end
|
||||
|
||||
@implementation SessionDiscoverNewTableViewCell
|
||||
|
||||
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
[self.contentView addSubview:self.logoImageView];
|
||||
[self.contentView addSubview:self.titleLabel];
|
||||
[self.contentView addSubview:self.arrowImageView];
|
||||
[self.contentView addSubview:self.dotView];
|
||||
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(15);
|
||||
make.height.width.mas_equalTo(45);
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
}];
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(self.logoImageView.mas_centerY);
|
||||
make.left.mas_equalTo(self.logoImageView.mas_right).offset(15);
|
||||
}];
|
||||
|
||||
[self.arrowImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(6.5, 11));
|
||||
make.right.mas_equalTo(self.contentView).offset(-15);
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
}];
|
||||
|
||||
|
||||
|
||||
[self.dotView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(8, 8));
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.right.mas_equalTo(self.arrowImageView.mas_left).offset(-3);
|
||||
}];
|
||||
}
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setHiddenDotView:(BOOL)hiddenDotView {
|
||||
_hiddenDotView = hiddenDotView;
|
||||
self.dotView.hidden = _hiddenDotView;
|
||||
}
|
||||
|
||||
- (NetImageView *)logoImageView {
|
||||
if (!_logoImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_logoImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_logoImageView.layer.masksToBounds = YES;
|
||||
_logoImageView.layer.cornerRadius = 45 / 2;
|
||||
_logoImageView.imageUrl = @"https://image.lecheng163.com/fxmx.png";
|
||||
}
|
||||
return _logoImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
|
||||
_titleLabel.backgroundColor = [UIColor clearColor];
|
||||
_titleLabel.font = [UIFont systemFontOfSize:15.f weight:UIFontWeightMedium];
|
||||
_titleLabel.textColor = DJDKMIMOMColor.mainTextColor;
|
||||
_titleLabel.text = YMLocalizedString(@"SessionDiscoverNewTableViewCell0");
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (UIImageView *)arrowImageView {
|
||||
if (!_arrowImageView) {
|
||||
_arrowImageView = [[UIImageView alloc] init];
|
||||
_arrowImageView.userInteractionEnabled = YES;
|
||||
_arrowImageView.image = [UIImage imageNamed:@"common_right_arrow"];
|
||||
}
|
||||
return _arrowImageView;
|
||||
}
|
||||
|
||||
|
||||
- (UIView *)dotView {
|
||||
if (!_dotView) {
|
||||
_dotView = [[UIView alloc] init];
|
||||
_dotView.backgroundColor = [UIColor redColor];
|
||||
_dotView.layer.cornerRadius = 4;
|
||||
_dotView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _dotView;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@end
|
@@ -11,9 +11,9 @@
|
||||
#import "NIMMessageUtils.h"
|
||||
#import "NIMTimeUtils.h"
|
||||
#import "UIView+NIM.h"
|
||||
|
||||
#import "QEmotionHelper.h"
|
||||
#import "DJDKMIMOMColor.h"
|
||||
|
||||
#import <YYText/YYText.h>
|
||||
#import <Masonry/Masonry.h>
|
||||
|
||||
@interface SessionListCell()
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
@property (nonatomic,strong) UILabel *nameLabel;
|
||||
|
||||
@property (nonatomic,strong) UILabel *messageLabel;
|
||||
@property (nonatomic,strong) YYLabel*messageLabel;
|
||||
|
||||
@property (nonatomic,strong) UILabel *timeLabel;
|
||||
|
||||
@@ -67,8 +67,11 @@
|
||||
self.avatarImageView.imageUrl = avatarUrl;
|
||||
[self.nameLabel sizeToFit];
|
||||
}
|
||||
self.messageLabel.text = [NIMMessageUtils messageContent:recent.lastMessage];
|
||||
[self.messageLabel sizeToFit];
|
||||
NSString *messageTitle = [NIMMessageUtils messageContent:recent.lastMessage];
|
||||
NSMutableAttributedString *messageAtt = [[QEmotionHelper sharedEmotionHelper]attributedStringByText:messageTitle font:self.messageLabel.font];
|
||||
self.messageLabel.attributedText = messageAtt;
|
||||
|
||||
|
||||
if (recent.lastMessage) {
|
||||
self.timeLabel.text = [NIMTimeUtils showTime:recent.lastMessage.timestamp showDetail:NO];
|
||||
} else {
|
||||
@@ -160,9 +163,9 @@
|
||||
return _nameLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)messageLabel {
|
||||
- (YYLabel *)messageLabel {
|
||||
if (!_messageLabel) {
|
||||
_messageLabel = [[UILabel alloc] initWithFrame:CGRectZero];
|
||||
_messageLabel = [[YYLabel alloc] initWithFrame:CGRectZero];
|
||||
_messageLabel.backgroundColor = [UIColor clearColor];
|
||||
_messageLabel.font = [UIFont systemFontOfSize:13.f];
|
||||
_messageLabel.textColor = DJDKMIMOMColor.secondTextColor;
|
||||
|
@@ -1,20 +1,18 @@
|
||||
//
|
||||
// SessionListViewController.m
|
||||
// YUMI
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by zu on 2021/11/25.
|
||||
//
|
||||
|
||||
#import "SessionListViewController.h"
|
||||
#import "SessionListCell.h"
|
||||
#import "SessionDiscoverNewTableViewCell.h"
|
||||
#import "SessionViewController.h"
|
||||
#import "DJDKMIMOMColor.h"
|
||||
#import "YUMIMacroUitls.h"
|
||||
|
||||
#import "ClientConfig.h"
|
||||
#import "Api+Mine.h"
|
||||
#import "AccountInfoStorage.h"
|
||||
#import "NSArray+Safe.h"
|
||||
#import "NSMutableDictionary+Saft.h"
|
||||
///Model
|
||||
#import "UserInfoModel.h"
|
||||
///View
|
||||
@@ -27,8 +25,9 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
|
||||
#import <Masonry/Masonry.h>
|
||||
|
||||
@interface SessionListViewController ()<UITableViewDataSource, UITableViewDelegate, NIMLoginManagerDelegate, NIMConversationManagerDelegate>
|
||||
|
||||
//@property (nonatomic,strong) UIView *customNavigationBar;
|
||||
//
|
||||
|
||||
//@property (nonatomic,strong) UILabel *titleLabel;
|
||||
//
|
||||
//@property (nonatomic, strong) UIButton *allReadButton;
|
||||
@@ -46,441 +45,383 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
|
||||
///用户信息
|
||||
@property (nonatomic,strong) UserInfoModel *userInfo;
|
||||
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
|
||||
///置顶回话
|
||||
@property (nonatomic,strong) NSMutableDictionary<NIMSession *, NIMStickTopSessionInfo *> *stickTopMessages;
|
||||
@end
|
||||
|
||||
@implementation SessionListViewController
|
||||
|
||||
- (void)dealloc {
|
||||
[[NIMSDK sharedSDK].conversationManager removeDelegate:self];
|
||||
[[NIMSDK sharedSDK].loginManager removeDelegate:self];
|
||||
[[NSNotificationCenter defaultCenter]removeObserver:self];
|
||||
[[NIMSDK sharedSDK].conversationManager removeDelegate:self];
|
||||
[[NIMSDK sharedSDK].loginManager removeDelegate:self];
|
||||
[[NSNotificationCenter defaultCenter]removeObserver:self];
|
||||
}
|
||||
|
||||
- (BOOL)isHiddenNavBar {
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (instancetype)initWithType:(SessionListOpenType)type {
|
||||
self = [self init];
|
||||
if (self) {
|
||||
_openType = type;
|
||||
}
|
||||
return self;
|
||||
self = [self init];
|
||||
if (self) {
|
||||
_openType = type;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
_openType = SessionListOpenTypeDefault;
|
||||
[self initDatas];
|
||||
[[NIMSDK sharedSDK].conversationManager addDelegate:self];
|
||||
[[NIMSDK sharedSDK].loginManager addDelegate:self];
|
||||
///置顶会话同步
|
||||
[[NIMSDKConfig sharedConfig] setShouldSyncStickTopSessionInfos:YES];
|
||||
}
|
||||
return self;
|
||||
self = [super init];
|
||||
if (self) {
|
||||
_openType = SessionListOpenTypeDefault;
|
||||
[self initDatas];
|
||||
[[NIMSDK sharedSDK].conversationManager addDelegate:self];
|
||||
[[NIMSDK sharedSDK].loginManager addDelegate:self];
|
||||
///置顶会话同步
|
||||
[[NIMSDKConfig sharedConfig] setShouldSyncStickTopSessionInfos:YES];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self getUserInfo];
|
||||
[self initViews];
|
||||
[self initLayout];
|
||||
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(allReadButtonClick) name:@"kAllReadAction" object:nil];
|
||||
[super viewDidLoad];
|
||||
[self getUserInfo];
|
||||
[self initViews];
|
||||
[self initLayout];
|
||||
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(allReadButtonClick) name:@"kAllReadAction" object:nil];
|
||||
}
|
||||
|
||||
- (void)getUserInfo {
|
||||
NSString * uid = [AccountInfoStorage instance].getUid;
|
||||
[Api getUserInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
UserInfoModel * userInfo = [UserInfoModel modelWithDictionary:data.data];
|
||||
self.userInfo = userInfo;
|
||||
[self.sessionListView reloadData];
|
||||
}
|
||||
} uid:uid];
|
||||
NSString * uid = [AccountInfoStorage instance].getUid;
|
||||
[Api getUserInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if (code == 200) {
|
||||
UserInfoModel * userInfo = [UserInfoModel modelWithDictionary:data.data];
|
||||
self.userInfo = userInfo;
|
||||
[self.sessionListView reloadData];
|
||||
}
|
||||
} uid:uid];
|
||||
}
|
||||
- (void)initViews {
|
||||
self.view.backgroundColor = [UIColor clearColor];
|
||||
|
||||
[self.view addSubview:self.sessionListView];
|
||||
// self.title = @"消息";
|
||||
self.view.backgroundColor = [UIColor clearColor];
|
||||
if (self.openType == SessionListOpenTypeDefault) {
|
||||
// [self.customNavigationBar addSubview:self.titleLabel];
|
||||
// [self.view addSubview:self.customNavigationBar];
|
||||
// [self.customNavigationBar addSubview:self.allReadButton];
|
||||
}
|
||||
[self.view addSubview:self.sessionListView];
|
||||
}
|
||||
|
||||
- (void)initLayout {
|
||||
|
||||
|
||||
[self.sessionListView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
if (self.openType == SessionListOpenTypeDefault) {
|
||||
// [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
// make.center.mas_equalTo(self.customNavigationBar);
|
||||
// }];
|
||||
// [self.allReadButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
// make.right.mas_equalTo(-16);
|
||||
// make.width.height.mas_equalTo(30);
|
||||
// make.centerY.mas_equalTo(self.customNavigationBar);
|
||||
// }];
|
||||
}
|
||||
|
||||
[self.sessionListView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.bottom.mas_equalTo(self.view);
|
||||
if (self.openType == SessionListOpenTypeDefault) {
|
||||
make.top.mas_equalTo(self.view);
|
||||
} else {
|
||||
make.top.mas_equalTo(self.view);
|
||||
}
|
||||
}];
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
- (void)initDatas {
|
||||
[self.recentSessions removeAllObjects];
|
||||
_recentSessions = [[NIMSDK sharedSDK].conversationManager.allRecentSessions mutableCopy];
|
||||
__block int unreadCount = 0;
|
||||
NSMutableArray<NSString *> * uids = [[NSMutableArray alloc] init];
|
||||
[self.recentSessions enumerateObjectsUsingBlock:^(NIMRecentSession * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
[uids addObject:obj.session.sessionId];
|
||||
unreadCount += obj.unreadCount;
|
||||
}];
|
||||
[[NIMSDK sharedSDK].userManager fetchUserInfos:uids completion:nil];
|
||||
|
||||
NIMLoadRecentSessionsOptions *options = [[NIMLoadRecentSessionsOptions alloc] init];
|
||||
options.sortByStickTopInfos = YES;
|
||||
[NIMSDK.sharedSDK.chatExtendManager loadRecentSessionsWithOptions:options completion:^(NSError * _Nullable error, NSArray<NIMRecentSession *> * _Nullable recentSessions) {
|
||||
if (error) {
|
||||
// handle error
|
||||
return;
|
||||
}
|
||||
|
||||
}];
|
||||
@kWeakify(self);
|
||||
// 移除服务端撤回的非正常会话
|
||||
[self.recentSessions enumerateObjectsUsingBlock:^(NIMRecentSession * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
@kStrongify(self);
|
||||
if (![[ClientConfig shareConfig].configInfo.officialMsgUids containsObject:obj.session.sessionId]) {
|
||||
if (obj.lastMessage.messageType == NIMMessageTypeTip) {
|
||||
if ([obj.lastMessage.localExt[@"isServer"] boolValue] == YES) {
|
||||
[self.recentSessions removeObject:obj];
|
||||
[uids removeObject:obj.session.sessionId];
|
||||
unreadCount -= obj.unreadCount;
|
||||
NIMDeleteRecentSessionOption *option = [[NIMDeleteRecentSessionOption alloc] init];
|
||||
option.isDeleteRoamMessage = YES;
|
||||
option.shouldMarkAllMessagesReadInSessions = YES;
|
||||
[[NIMSDK sharedSDK].conversationManager deleteRecentSession:obj option:option completion:^(NSError * _Nullable error) {
|
||||
|
||||
}];
|
||||
}
|
||||
}
|
||||
}
|
||||
}];
|
||||
[self setTabBarItemBadge:unreadCount];
|
||||
[[NIMSDK sharedSDK].userManager fetchUserInfos:uids completion:nil];
|
||||
|
||||
[[NIMSDK sharedSDK].chatExtendManager loadStickTopSessionInfos:^(NSError * _Nullable error, NSDictionary<NIMSession *,NIMStickTopSessionInfo *> * _Nullable infos) {
|
||||
if (error == nil) {
|
||||
self.stickTopMessages = [infos mutableCopy];
|
||||
[self sortSessionList];
|
||||
}
|
||||
}];
|
||||
|
||||
NIMLoadRecentSessionsOptions *options1 = [[NIMLoadRecentSessionsOptions alloc] init];
|
||||
options1.sortByStickTopInfos = YES;
|
||||
[NIMSDK.sharedSDK.chatExtendManager loadRecentSessionsWithOptions:options1 completion:^(NSError * _Nullable error, NSArray<NIMRecentSession *> * _Nullable recentSessions) {
|
||||
if (error) {
|
||||
// handle error
|
||||
return;
|
||||
}
|
||||
|
||||
}];
|
||||
[self.recentSessions removeAllObjects];
|
||||
_recentSessions = [[NIMSDK sharedSDK].conversationManager.allRecentSessions mutableCopy];
|
||||
__block int unreadCount = 0;
|
||||
NSMutableArray<NSString *> * uids = [[NSMutableArray alloc] init];
|
||||
[self.recentSessions enumerateObjectsUsingBlock:^(NIMRecentSession * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
[uids addObject:obj.session.sessionId];
|
||||
unreadCount += obj.unreadCount;
|
||||
}];
|
||||
[self setTabBarItemBadge:unreadCount];
|
||||
[[NIMSDK sharedSDK].userManager fetchUserInfos:uids completion:nil];
|
||||
|
||||
NIMLoadRecentSessionsOptions *options = [[NIMLoadRecentSessionsOptions alloc] init];
|
||||
options.sortByStickTopInfos = YES;
|
||||
[NIMSDK.sharedSDK.chatExtendManager loadRecentSessionsWithOptions:options completion:^(NSError * _Nullable error, NSArray<NIMRecentSession *> * _Nullable recentSessions) {
|
||||
if (error) {
|
||||
// handle error
|
||||
return;
|
||||
}
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDelegate
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
if (self.openType == SessionListOpenTypeRoom) {
|
||||
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
|
||||
SessionViewController * sessionVC =[[SessionViewController alloc] initWithSession:recentSession.session];
|
||||
sessionVC.stickTopMessages = self.stickTopMessages;
|
||||
sessionVC.openType = self.openType;
|
||||
CATransition *transition = [CATransition animation];
|
||||
transition.duration = 0.3f;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionPush;
|
||||
transition.subtype = kCATransitionFromRight;
|
||||
[self.mainController.view.layer addAnimation:transition forKey:nil];
|
||||
[self.mainController.view addSubview:sessionVC.view];
|
||||
[self.mainController addChildViewController:sessionVC];
|
||||
} else {
|
||||
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
|
||||
SessionViewController *vc = [[SessionViewController alloc] initWithSession:recentSession.session];
|
||||
vc.stickTopMessages = self.stickTopMessages;
|
||||
vc.openType = self.openType;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
if (indexPath.section == 0) {
|
||||
SessionDiscoverNewTableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
|
||||
cell.hiddenDotView = YES;
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kMessageShowReadDotKey];
|
||||
XPSessionFindNewViewController * findNewVC = [[XPSessionFindNewViewController alloc] init];
|
||||
[self.navigationController pushViewController:findNewVC animated:YES];
|
||||
return;
|
||||
}
|
||||
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
if (self.openType == SessionListOpenTypeRoom) {
|
||||
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
|
||||
SessionViewController * sessionVC =[[SessionViewController alloc] initWithSession:recentSession.session];
|
||||
sessionVC.openType = self.openType;
|
||||
CATransition *transition = [CATransition animation];
|
||||
transition.duration = 0.3f;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionPush;
|
||||
transition.subtype = kCATransitionFromRight;
|
||||
[self.mainController.view.layer addAnimation:transition forKey:nil];
|
||||
[self.mainController.view addSubview:sessionVC.view];
|
||||
[self.mainController addChildViewController:sessionVC];
|
||||
} else {
|
||||
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
|
||||
SessionViewController *vc = [[SessionViewController alloc] initWithSession:recentSession.session];
|
||||
vc.openType = self.openType;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
return 70.f;
|
||||
return 70.f;
|
||||
}
|
||||
|
||||
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return YES;
|
||||
if (indexPath.section == 0) {
|
||||
return NO;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
NIMRecentSession * session = [self.recentSessions safeObjectAtIndex1:indexPath.row];
|
||||
UITableViewRowAction * deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"SessionListViewController0") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
|
||||
NIMRecentSession * session = [self.recentSessions safeObjectAtIndex1:indexPath.row];
|
||||
[[NIMSDK sharedSDK].conversationManager deleteRecentSession:session];
|
||||
}];
|
||||
deleteAction.title = YMLocalizedString(@"SessionListViewController1");
|
||||
deleteAction.backgroundColor = [UIColor redColor];
|
||||
NIMStickTopSessionInfo * topInfo = [self.stickTopMessages objectForKey:session.session];
|
||||
if (topInfo.session.sessionId.length > 0) {
|
||||
UITableViewRowAction * topAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"SessionListViewController6") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
|
||||
[[NIMSDK sharedSDK].chatExtendManager removeStickTopSession:topInfo completion:^(NSError * _Nullable error, NIMStickTopSessionInfo * _Nullable removedInfo) {
|
||||
if (error == nil) {
|
||||
[self.stickTopMessages removeObjectForKey:session.session];
|
||||
[self sortSessionList];
|
||||
[self.sessionListView reloadData];
|
||||
}
|
||||
}];
|
||||
}];
|
||||
topAction.title = YMLocalizedString(@"SessionListViewController7");
|
||||
topAction.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#4C94FF"];
|
||||
return @[deleteAction, topAction];
|
||||
} else {
|
||||
UITableViewRowAction * topAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"SessionListViewController6") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
|
||||
NIMAddStickTopSessionParams * params = [[NIMAddStickTopSessionParams alloc] initWithSession:session.session];
|
||||
[[NIMSDK sharedSDK].chatExtendManager addStickTopSession:params completion:^(NSError * _Nullable error, NIMStickTopSessionInfo * _Nullable newInfo) {
|
||||
if (error == nil) {
|
||||
[self.stickTopMessages safeSetObject:newInfo forKey:session.session];
|
||||
[self sortSessionList];
|
||||
[self.sessionListView reloadData];
|
||||
}
|
||||
}];
|
||||
}];
|
||||
topAction.title = YMLocalizedString(@"SessionListViewController6");
|
||||
topAction.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#4C94FF"];
|
||||
return @[deleteAction, topAction];
|
||||
}
|
||||
UITableViewRowAction * deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"SessionListViewController0") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
|
||||
NIMRecentSession * session = [self.recentSessions safeObjectAtIndex1:indexPath.row];
|
||||
[[NIMSDK sharedSDK].conversationManager deleteRecentSession:session];
|
||||
}];
|
||||
deleteAction.title = YMLocalizedString(@"SessionListViewController1");
|
||||
deleteAction.backgroundColor = [UIColor redColor];
|
||||
return @[deleteAction];
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDataSource
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
||||
return 1;
|
||||
return 2;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
|
||||
return self.recentSessions.count;
|
||||
if (section == 0) {
|
||||
// return [ClientConfig shareConfig].configInfo.findNewbieCharmLevel <= self.userInfo.userLevelVo.experLevelSeq ? 1 : 0;
|
||||
return 0;
|
||||
}
|
||||
return self.recentSessions.count;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
|
||||
static NSString * cellId = @"cellId";
|
||||
SessionListCell * cell = [tableView dequeueReusableCellWithIdentifier:cellId];
|
||||
if (!cell) {
|
||||
cell = [[SessionListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
|
||||
}
|
||||
NIMRecentSession *recent = self.recentSessions[indexPath.row];
|
||||
cell.stickTopMessages = self.stickTopMessages;
|
||||
[cell renderWithSession:recent];
|
||||
return cell;
|
||||
if (indexPath.section == 0) {
|
||||
SessionDiscoverNewTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([SessionDiscoverNewTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[SessionDiscoverNewTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([SessionDiscoverNewTableViewCell class])];
|
||||
}
|
||||
BOOL hidden = [[NSUserDefaults standardUserDefaults] boolForKey:kMessageShowReadDotKey];
|
||||
cell.hiddenDotView = hidden;
|
||||
return cell;
|
||||
}
|
||||
static NSString * cellId = @"cellId";
|
||||
SessionListCell * cell = [tableView dequeueReusableCellWithIdentifier:cellId];
|
||||
if (!cell) {
|
||||
cell = [[SessionListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
|
||||
}
|
||||
NIMRecentSession *recent = self.recentSessions[indexPath.row];
|
||||
[cell renderWithSession:recent];
|
||||
return cell;
|
||||
}
|
||||
#pragma mark - NIMConversationManagerDelegate
|
||||
- (void)didLoadAllRecentSessionCompletion {
|
||||
[self initDatas];
|
||||
[self.sessionListView reloadData];
|
||||
[self initDatas];
|
||||
[self.sessionListView reloadData];
|
||||
}
|
||||
|
||||
- (void)didAddRecentSession:(NIMRecentSession *)recentSession
|
||||
totalUnreadCount:(NSInteger)totalUnreadCount {
|
||||
[self.recentSessions addObject:recentSession];
|
||||
[self.recentSessions sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
|
||||
NIMRecentSession *item1 = obj1;
|
||||
NIMRecentSession *item2 = obj2;
|
||||
if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) {
|
||||
return NSOrderedDescending;
|
||||
}
|
||||
if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) {
|
||||
return NSOrderedAscending;
|
||||
}
|
||||
return NSOrderedSame;
|
||||
}];
|
||||
[self.sessionListView reloadData];
|
||||
[self setTabBarItemBadge:totalUnreadCount];
|
||||
totalUnreadCount:(NSInteger)totalUnreadCount {
|
||||
[self.recentSessions addObject:recentSession];
|
||||
[self.recentSessions sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
|
||||
NIMRecentSession *item1 = obj1;
|
||||
NIMRecentSession *item2 = obj2;
|
||||
if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) {
|
||||
return NSOrderedDescending;
|
||||
}
|
||||
if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) {
|
||||
return NSOrderedAscending;
|
||||
}
|
||||
return NSOrderedSame;
|
||||
}];
|
||||
[self.sessionListView reloadData];
|
||||
[self setTabBarItemBadge:totalUnreadCount];
|
||||
}
|
||||
|
||||
- (void)didUpdateRecentSession:(NIMRecentSession *)recentSession
|
||||
totalUnreadCount:(NSInteger)totalUnreadCount {
|
||||
for (NIMRecentSession *recent in self.recentSessions) {
|
||||
if ([recentSession.session.sessionId isEqualToString:recent.session.sessionId]) {
|
||||
[self.recentSessions removeObject:recent];
|
||||
break;
|
||||
}
|
||||
}
|
||||
NSInteger insert = [self findInsertPlace:recentSession];
|
||||
[self.recentSessions insertObject:recentSession atIndex:insert];
|
||||
[self.sessionListView reloadData];
|
||||
[self setTabBarItemBadge:totalUnreadCount];
|
||||
totalUnreadCount:(NSInteger)totalUnreadCount {
|
||||
for (NIMRecentSession *recent in self.recentSessions) {
|
||||
if ([recentSession.session.sessionId isEqualToString:recent.session.sessionId]) {
|
||||
[self.recentSessions removeObject:recent];
|
||||
break;
|
||||
}
|
||||
}
|
||||
NSInteger insert = [self findInsertPlace:recentSession];
|
||||
[self.recentSessions insertObject:recentSession atIndex:insert];
|
||||
[self.sessionListView reloadData];
|
||||
[self setTabBarItemBadge:totalUnreadCount];
|
||||
}
|
||||
|
||||
- (void)didRemoveRecentSession:(NIMRecentSession *)recentSession
|
||||
totalUnreadCount:(NSInteger)totalUnreadCount {
|
||||
// 清理本地数据
|
||||
NSUInteger index = [self.recentSessions indexOfObject:recentSession];
|
||||
[self.recentSessions removeObjectAtIndex:index];
|
||||
|
||||
// 如果删除本地会话后就不允许漫游当前会话,则需要进行一次删除服务器会话的操作
|
||||
BOOL deleteRemote = NO;
|
||||
if (deleteRemote) {
|
||||
[[NIMSDK sharedSDK].conversationManager deleteRemoteSessions:@[recentSession.session]
|
||||
completion:nil];
|
||||
}
|
||||
[self.sessionListView reloadData];
|
||||
[self setTabBarItemBadge:totalUnreadCount];
|
||||
totalUnreadCount:(NSInteger)totalUnreadCount {
|
||||
// 清理本地数据
|
||||
NSUInteger index = [self.recentSessions indexOfObject:recentSession];
|
||||
[self.recentSessions removeObjectAtIndex:index];
|
||||
|
||||
// 如果删除本地会话后就不允许漫游当前会话,则需要进行一次删除服务器会话的操作
|
||||
BOOL deleteRemote = NO;
|
||||
if (deleteRemote) {
|
||||
[[NIMSDK sharedSDK].conversationManager deleteRemoteSessions:@[recentSession.session]
|
||||
completion:nil];
|
||||
}
|
||||
[self.sessionListView reloadData];
|
||||
[self setTabBarItemBadge:totalUnreadCount];
|
||||
}
|
||||
|
||||
#pragma mark - NIMLoginManagerDelegate
|
||||
- (void)onLogin:(NIMLoginStep)step {
|
||||
if (step == NIMLoginStepSyncOK) {
|
||||
[self initDatas];
|
||||
}
|
||||
if (step == NIMLoginStepSyncOK) {
|
||||
[self initDatas];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - JXCategoryListContentViewDelegate
|
||||
- (UIView *)listView {
|
||||
return self.view;
|
||||
return self.view;
|
||||
}
|
||||
- (UIScrollView *)listScrollView {
|
||||
return self.sessionListView;
|
||||
return self.sessionListView;
|
||||
}
|
||||
- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback {
|
||||
self.scrollCallback = callback;
|
||||
self.scrollCallback = callback;
|
||||
}
|
||||
|
||||
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
|
||||
if (self.scrollCallback){
|
||||
self.scrollCallback(scrollView);
|
||||
}
|
||||
|
||||
if (self.scrollCallback){
|
||||
self.scrollCallback(scrollView);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - Private
|
||||
- (NSInteger)findInsertPlace:(NIMRecentSession *)recentSession{
|
||||
__block NSUInteger matchIdx = 0;
|
||||
__block BOOL find = NO;
|
||||
[self.recentSessions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
|
||||
NIMRecentSession *item = obj;
|
||||
if (item.lastMessage.timestamp <= recentSession.lastMessage.timestamp) {
|
||||
*stop = YES;
|
||||
find = YES;
|
||||
matchIdx = idx;
|
||||
}
|
||||
}];
|
||||
if (find) {
|
||||
return matchIdx;
|
||||
} else {
|
||||
return self.recentSessions.count;
|
||||
}
|
||||
__block NSUInteger matchIdx = 0;
|
||||
__block BOOL find = NO;
|
||||
[self.recentSessions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
|
||||
NIMRecentSession *item = obj;
|
||||
if (item.lastMessage.timestamp <= recentSession.lastMessage.timestamp) {
|
||||
*stop = YES;
|
||||
find = YES;
|
||||
matchIdx = idx;
|
||||
}
|
||||
}];
|
||||
if (find) {
|
||||
return matchIdx;
|
||||
} else {
|
||||
return self.recentSessions.count;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)sort{
|
||||
[self.recentSessions sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
|
||||
NIMRecentSession *item1 = obj1;
|
||||
NIMRecentSession *item2 = obj2;
|
||||
if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) {
|
||||
return NSOrderedDescending;
|
||||
}
|
||||
if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) {
|
||||
return NSOrderedAscending;
|
||||
}
|
||||
return NSOrderedSame;
|
||||
}];
|
||||
[self.recentSessions sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
|
||||
NIMRecentSession *item1 = obj1;
|
||||
NIMRecentSession *item2 = obj2;
|
||||
if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) {
|
||||
return NSOrderedDescending;
|
||||
}
|
||||
if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) {
|
||||
return NSOrderedAscending;
|
||||
}
|
||||
return NSOrderedSame;
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)setTabBarItemBadge:(NSInteger)value {
|
||||
[[NSNotificationCenter defaultCenter]postNotificationName:@"kGetTabBarItemBadge" object:nil userInfo:@{@"BadgeValue":@(value)}];
|
||||
|
||||
[[NSNotificationCenter defaultCenter]postNotificationName:@"kGetTabBarItemBadge" object:nil userInfo:@{@"BadgeValue":@(value)}];
|
||||
|
||||
}
|
||||
|
||||
-(void)sortSessionList {
|
||||
NSMutableArray * recentList = [self.recentSessions mutableCopy];
|
||||
[self.recentSessions removeAllObjects];
|
||||
NSMutableArray * topList = [NSMutableArray array];
|
||||
NSMutableArray * normalList = [NSMutableArray array];
|
||||
for (int i = 0 ; i < recentList.count; i++) {
|
||||
NIMRecentSession * recentSession = [recentList safeObjectAtIndex1:i];
|
||||
NIMStickTopSessionInfo * topInfo = [self.stickTopMessages objectForKey:recentSession.session];
|
||||
if (topInfo && topInfo.session.sessionId > 0) {
|
||||
[topList addObject:recentSession];
|
||||
} else {
|
||||
[normalList addObject:recentSession];
|
||||
}
|
||||
}
|
||||
|
||||
if (topList.count > 0) {
|
||||
[self sortArray:topList];
|
||||
}
|
||||
|
||||
if (normalList.count > 0) {
|
||||
[self sortArray:normalList];
|
||||
}
|
||||
|
||||
[self.recentSessions addObjectsFromArray:topList];
|
||||
[self.recentSessions addObjectsFromArray:normalList];
|
||||
[self.sessionListView reloadData];
|
||||
}
|
||||
|
||||
- (void)sortArray:(NSMutableArray *)arry {
|
||||
[arry sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
|
||||
NIMRecentSession *item1 = obj1;
|
||||
NIMRecentSession *item2 = obj2;
|
||||
if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) {
|
||||
return NSOrderedDescending;
|
||||
}
|
||||
if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) {
|
||||
return NSOrderedAscending;
|
||||
}
|
||||
return NSOrderedSame;
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - action
|
||||
- (void)allReadButtonClick {
|
||||
NSInteger count = [NIMSDK sharedSDK].conversationManager.allUnreadCount;
|
||||
if (count<1) {
|
||||
[self showErrorToast:YMLocalizedString(@"SessionListViewController2")];
|
||||
return;
|
||||
}
|
||||
TTAlertConfig * config = [[TTAlertConfig alloc] init];
|
||||
config.confirmButtonConfig.title = YMLocalizedString(@"SessionListViewController3");
|
||||
config.message = YMLocalizedString(@"SessionListViewController4");
|
||||
[TTPopup alertWithConfig:config confirmHandler:^{
|
||||
[[NIMSDK sharedSDK].conversationManager markAllMessagesRead];
|
||||
[self setTabBarItemBadge:0];
|
||||
[self.sessionListView reloadData];
|
||||
} cancelHandler:^{
|
||||
|
||||
}];
|
||||
NSInteger count = [NIMSDK sharedSDK].conversationManager.allUnreadCount;
|
||||
if (count<1) {
|
||||
[self showErrorToast:YMLocalizedString(@"SessionListViewController2")];
|
||||
return;
|
||||
}
|
||||
TTAlertConfig * config = [[TTAlertConfig alloc] init];
|
||||
config.confirmButtonConfig.title = YMLocalizedString(@"SessionListViewController3");
|
||||
config.message =YMLocalizedString(@"SessionListViewController4");
|
||||
[TTPopup alertWithConfig:config confirmHandler:^{
|
||||
[[NIMSDK sharedSDK].conversationManager markAllMessagesRead];
|
||||
[self setTabBarItemBadge:0];
|
||||
[self.sessionListView reloadData];
|
||||
} cancelHandler:^{
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
//- (UIView *)customNavigationBar {
|
||||
// if (!_customNavigationBar) {
|
||||
// CGRect frame = CGRectMake(0, kStatusBarHeight, KScreenWidth, 44);
|
||||
// _customNavigationBar = [[UIView alloc]initWithFrame:frame];
|
||||
// }
|
||||
// return _customNavigationBar;
|
||||
//}
|
||||
|
||||
//- (UILabel *)titleLabel {
|
||||
// if (!_titleLabel) {
|
||||
// _titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
|
||||
// _titleLabel.backgroundColor = [UIColor clearColor];
|
||||
// _titleLabel.font = [UIFont systemFontOfSize:18.f weight:UIFontWeightMedium];
|
||||
// _titleLabel.textColor = ThemeColor.mainTextColor;
|
||||
// _titleLabel.text = @"消息";
|
||||
// }
|
||||
// return _titleLabel;
|
||||
//}
|
||||
|
||||
- (UITableView *)sessionListView {
|
||||
if (!_sessionListView) {
|
||||
_sessionListView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_sessionListView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_sessionListView.backgroundColor = UIColor.clearColor;
|
||||
_sessionListView.delegate = self;
|
||||
_sessionListView.dataSource = self;
|
||||
_sessionListView.showsVerticalScrollIndicator = NO;
|
||||
}
|
||||
return _sessionListView;
|
||||
if (!_sessionListView) {
|
||||
_sessionListView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_sessionListView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_sessionListView.backgroundColor = UIColor.clearColor;
|
||||
_sessionListView.delegate = self;
|
||||
_sessionListView.dataSource = self;
|
||||
_sessionListView.showsVerticalScrollIndicator = NO;
|
||||
}
|
||||
return _sessionListView;
|
||||
}
|
||||
|
||||
- (NSMutableArray<NIMRecentSession *> *)recentSessions {
|
||||
if (!_recentSessions) {
|
||||
_recentSessions = [NSMutableArray array];
|
||||
}
|
||||
return _recentSessions;
|
||||
if (!_recentSessions) {
|
||||
_recentSessions = [NSMutableArray array];
|
||||
}
|
||||
return _recentSessions;
|
||||
}
|
||||
|
||||
- (NSMutableDictionary<NIMSession *,NIMStickTopSessionInfo *> *)stickTopMessages {
|
||||
if (!_stickTopMessages) {
|
||||
_stickTopMessages = [NSMutableDictionary dictionary];
|
||||
}
|
||||
return _stickTopMessages;
|
||||
}
|
||||
//- (UIButton *)allReadButton {
|
||||
// if (!_allReadButton) {
|
||||
// _allReadButton = [[UIButton alloc] init];
|
||||
// [_allReadButton setImage:[UIImage imageNamed:@"sessionList_clear"] forState:UIControlStateNormal];
|
||||
// [_allReadButton addTarget:self action:@selector(allReadButtonClick:) forControlEvents:UIControlEventTouchUpInside];
|
||||
// }
|
||||
// return _allReadButton;
|
||||
//}
|
||||
|
||||
@end
|
||||
|
@@ -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];
|
||||
}
|
||||
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMMineAttentionTableViewCell.m
|
||||
// YUMI
|
||||
// XPMineAttentionTableViewCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/12/21.
|
||||
// Created by 冯硕 on 2021/12/21.
|
||||
//
|
||||
|
||||
#import "XPMineAttentionTableViewCell.h"
|
||||
@@ -10,7 +10,6 @@
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "NetImageView.h"
|
||||
#import "DJDKMIMOMColor.h"
|
||||
#import "UIImage+Utils.h"
|
||||
///Model
|
||||
#import "FansInfoModel.h"
|
||||
@@ -34,157 +33,160 @@
|
||||
@property (nonatomic,strong) UILabel *signLabel;
|
||||
///找到他
|
||||
@property (nonatomic,strong) UIButton *findButton;
|
||||
///分割线
|
||||
@property (nonatomic,strong) UIView *lineView;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPMineAttentionTableViewCell
|
||||
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self.contentView addSubview:self.avatarImageView];
|
||||
[self.contentView addSubview:self.stackView];
|
||||
[self.contentView addSubview:self.signLabel];
|
||||
[self.contentView addSubview:self.findButton];
|
||||
[self.contentView addSubview:self.lineView];
|
||||
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self.contentView addSubview:self.avatarImageView];
|
||||
[self.contentView addSubview:self.stackView];
|
||||
[self.contentView addSubview:self.signLabel];
|
||||
[self.contentView addSubview:self.findButton];
|
||||
|
||||
|
||||
[self.stackView addArrangedSubview:self.nobleImageView];
|
||||
[self.stackView addArrangedSubview:self.nickLabel];
|
||||
[self.stackView addArrangedSubview:self.sexImageView];
|
||||
[self.stackView addArrangedSubview:self.experImageView];
|
||||
[self.stackView addArrangedSubview:self.charmImageView];
|
||||
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(55, 55));
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.left.mas_equalTo(self.contentView).offset(15);
|
||||
}];
|
||||
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(10);
|
||||
make.right.mas_lessThanOrEqualTo(self.findButton.mas_left).mas_offset(-4);
|
||||
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-2);
|
||||
}];
|
||||
|
||||
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.stackView);
|
||||
make.top.mas_equalTo(self.avatarImageView.mas_centerY).offset(2);
|
||||
make.right.mas_equalTo(self.findButton.mas_left).mas_offset(-4);
|
||||
}];
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake((50), (50)));
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.left.mas_equalTo(self.contentView).offset((15));
|
||||
}];
|
||||
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.avatarImageView.mas_right).offset((10));
|
||||
make.right.mas_lessThanOrEqualTo(self.findButton.mas_left).mas_offset(-(10));
|
||||
make.height.mas_equalTo(((20)));
|
||||
make.top.equalTo(self.avatarImageView.mas_top).mas_offset((3));
|
||||
}];
|
||||
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(28);
|
||||
make.height.mas_equalTo(14);
|
||||
}];
|
||||
[self.findButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(65);
|
||||
make.height.mas_equalTo(30);
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.right.mas_equalTo(self.contentView).offset(-15);
|
||||
}];
|
||||
|
||||
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.stackView);
|
||||
make.bottom.mas_equalTo(self.contentView);
|
||||
make.height.mas_equalTo(1);
|
||||
make.right.mas_equalTo(self.contentView).offset(-15);
|
||||
}];
|
||||
// [self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
// make.width.mas_lessThanOrEqualTo((100));
|
||||
// }];
|
||||
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.stackView);
|
||||
make.top.equalTo(self.stackView.mas_bottom).mas_offset((7));
|
||||
make.right.mas_equalTo(self.findButton.mas_left).mas_offset(-(10));
|
||||
}];
|
||||
|
||||
[self.findButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo((68));
|
||||
make.height.mas_equalTo((30));
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.right.mas_equalTo(self.contentView).offset(-(15));
|
||||
}];
|
||||
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)findButtonAction:(UIButton *)sender {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineAttentionTableViewCell:findUser:)]) {
|
||||
[self.delegate xPMineAttentionTableViewCell:self findUser:self.fansInfo.userInRoomUid];
|
||||
}
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineAttentionTableViewCell:findUser:)]) {
|
||||
[self.delegate xPMineAttentionTableViewCell:self findUser:self.fansInfo.userInRoomUid];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setFansInfo:(FansInfoModel *)fansInfo {
|
||||
_fansInfo = fansInfo;
|
||||
if (_fansInfo) {
|
||||
self.avatarImageView.imageUrl = _fansInfo.avatar;
|
||||
NSString *text = _fansInfo.nick.length > 6 ? [NSString stringWithFormat:@"%@...",[_fansInfo.nick substringToIndex:6]]:_fansInfo.nick;
|
||||
self.nickLabel.text = text;
|
||||
self.signLabel.text = _fansInfo.userDesc && _fansInfo.userDesc.length > 0? _fansInfo.userDesc : YMLocalizedString(@"XPMineAttentionTableViewCell0");
|
||||
if (_fansInfo.useingType != ContactUseingType_In_Room && _fansInfo.useingType != ContactUseingType_Share) {
|
||||
self.experImageView.hidden = NO;
|
||||
self.charmImageView.hidden = NO;
|
||||
self.nobleImageView.hidden = NO;
|
||||
self.sexImageView.hidden = NO;
|
||||
self.experImageView.imageUrl = _fansInfo.experUrl;
|
||||
self.charmImageView.imageUrl = _fansInfo.charmUrl;
|
||||
self.nobleImageView.imageUrl = _fansInfo.userVipInfoVO.vipIcon;
|
||||
|
||||
_fansInfo = fansInfo;
|
||||
if (_fansInfo) {
|
||||
self.avatarImageView.imageUrl = _fansInfo.avatar;
|
||||
self.nickLabel.text = _fansInfo.nick;
|
||||
self.signLabel.text = _fansInfo.userDesc && _fansInfo.userDesc.length > 0? _fansInfo.userDesc : YMLocalizedString(@"XPMineAttentionTableViewCell0");
|
||||
if (_fansInfo.useingType != ContactUseingType_In_Room && _fansInfo.useingType != ContactUseingType_Share) {
|
||||
self.experImageView.hidden = NO;
|
||||
self.charmImageView.hidden = NO;
|
||||
if (_fansInfo.userVipInfoVO.vipIcon != nil) {
|
||||
self.nobleImageView.hidden = NO;
|
||||
}else{
|
||||
self.nobleImageView.hidden = YES;
|
||||
}
|
||||
self.sexImageView.hidden = NO;
|
||||
self.experImageView.imageUrl = _fansInfo.experUrl;
|
||||
self.charmImageView.imageUrl = _fansInfo.charmUrl;
|
||||
self.nobleImageView.imageUrl = _fansInfo.userVipInfoVO.vipIcon;
|
||||
[self.sexImageView setTitle:[NSString getAgeWithBirth:_fansInfo.birth] forState:UIControlStateNormal];
|
||||
self.sexImageView.backgroundColor = _fansInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
|
||||
self.findButton.hidden = _fansInfo.userInRoomUid.length <= 0;
|
||||
UIImage* image = self.experImageView.image;
|
||||
if (image) {
|
||||
CGFloat scale = image.size.width / image.size.height;
|
||||
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.experUrl];
|
||||
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
|
||||
CGFloat scale = myImage.size.width / myImage.size.height;
|
||||
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
UIImage* charmImage = self.charmImageView.image;
|
||||
if (charmImage) {
|
||||
CGFloat scale = charmImage.size.width / charmImage.size.height;
|
||||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.charmUrl];
|
||||
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
|
||||
CGFloat scale = myImage.size.width / myImage.size.height;
|
||||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
UIImage *nobleImage = self.nobleImageView.image;
|
||||
if (nobleImage) {
|
||||
CGFloat scale = nobleImage.size.width / nobleImage.size.height;
|
||||
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(0, 20));
|
||||
}];
|
||||
}
|
||||
if (fansInfo.userVipInfoVO && fansInfo.userVipInfoVO.friendNickColour) {
|
||||
self.nickLabel.textColor = [self colorWithHexString:fansInfo.userVipInfoVO.friendNickColour];
|
||||
} else {
|
||||
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
} else {
|
||||
self.experImageView.hidden = YES;
|
||||
self.charmImageView.hidden = YES;
|
||||
self.nobleImageView.hidden = YES;
|
||||
self.sexImageView.hidden = YES;
|
||||
self.findButton.hidden = YES;
|
||||
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
}
|
||||
|
||||
self.sexImageView.selected = _fansInfo.gender != GenderType_Male;
|
||||
|
||||
self.findButton.hidden = _fansInfo.userInRoomUid.length <= 0;
|
||||
UIImage* image = self.experImageView.image;
|
||||
if (image) {
|
||||
CGFloat scale = image.size.width / image.size.height;
|
||||
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.experUrl];
|
||||
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
|
||||
CGFloat scale = myImage.size.width / myImage.size.height;
|
||||
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
UIImage* charmImage = self.charmImageView.image;
|
||||
if (charmImage) {
|
||||
CGFloat scale = charmImage.size.width / charmImage.size.height;
|
||||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.charmUrl];
|
||||
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
|
||||
CGFloat scale = myImage.size.width / myImage.size.height;
|
||||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
UIImage *nobleImage = self.nobleImageView.image;
|
||||
if (nobleImage) {
|
||||
CGFloat scale = nobleImage.size.width / nobleImage.size.height;
|
||||
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(0, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
if (fansInfo.userVipInfoVO && fansInfo.userVipInfoVO.friendNickColour) {
|
||||
self.nickLabel.textColor = [self colorWithHexString:fansInfo.userVipInfoVO.friendNickColour];
|
||||
} else {
|
||||
self.nickLabel.textColor = [DJDKMIMOMColor inputTextColor];
|
||||
}
|
||||
} else {
|
||||
self.experImageView.hidden = YES;
|
||||
self.charmImageView.hidden = YES;
|
||||
self.nobleImageView.hidden = YES;
|
||||
self.sexImageView.hidden = YES;
|
||||
self.findButton.hidden = YES;
|
||||
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (UIColor *)colorWithHexString: (NSString *) hexString {
|
||||
@@ -206,40 +208,40 @@
|
||||
}
|
||||
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 55/2;
|
||||
}
|
||||
return _avatarImageView;
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = (50.0/2);
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentCenter;
|
||||
_stackView.spacing = 2;
|
||||
}
|
||||
return _stackView;
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentCenter;
|
||||
_stackView.spacing = (4);
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (UILabel *)nickLabel {
|
||||
if (!_nickLabel) {
|
||||
_nickLabel = [[UILabel alloc] init];
|
||||
_nickLabel.font = [UIFont systemFontOfSize:15];
|
||||
_nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
return _nickLabel;
|
||||
if (!_nickLabel) {
|
||||
_nickLabel = [[UILabel alloc] init];
|
||||
_nickLabel.font = kFontMedium(15);
|
||||
_nickLabel.textColor = [DJDKMIMOMColor inputTextColor];
|
||||
}
|
||||
return _nickLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)sexImageView {
|
||||
if (!_sexImageView) {
|
||||
_sexImageView = [[UIButton alloc] init];
|
||||
if (!_sexImageView) {
|
||||
_sexImageView = [[UIButton alloc] init];
|
||||
[_sexImageView setImage:kImage(@"home_age_boy_icon") forState:UIControlStateNormal];
|
||||
[_sexImageView setImage:kImage(@"home_age_girl_icon") forState:UIControlStateSelected];
|
||||
_sexImageView.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
|
||||
@@ -247,30 +249,30 @@
|
||||
_sexImageView.imageEdgeInsets = UIEdgeInsetsMake(0, 2, 0, 0);
|
||||
_sexImageView.layer.cornerRadius = 14/2;
|
||||
_sexImageView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _sexImageView;
|
||||
}
|
||||
return _sexImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)experImageView {
|
||||
if (!_experImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_experImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_experImageView.layer.maskedCorners = YES;
|
||||
_experImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
return _experImageView;
|
||||
if (!_experImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_experImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_experImageView.layer.maskedCorners = YES;
|
||||
_experImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
return _experImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)charmImageView {
|
||||
if (!_charmImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_charmImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_charmImageView.layer.maskedCorners = YES;
|
||||
_charmImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
return _charmImageView;
|
||||
if (!_charmImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_charmImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_charmImageView.layer.maskedCorners = YES;
|
||||
_charmImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
return _charmImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)nobleImageView {
|
||||
@@ -281,36 +283,30 @@
|
||||
}
|
||||
|
||||
- (UILabel *)signLabel{
|
||||
if (!_signLabel) {
|
||||
_signLabel = [[UILabel alloc] init];
|
||||
_signLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
_signLabel.font = [UIFont systemFontOfSize:12];
|
||||
}
|
||||
return _signLabel;
|
||||
if (!_signLabel) {
|
||||
_signLabel = [[UILabel alloc] init];
|
||||
_signLabel.textColor = [DJDKMIMOMColor disableButtonTextColor];
|
||||
_signLabel.font = kFontMedium(12);
|
||||
}
|
||||
return _signLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)findButton {
|
||||
if (!_findButton) {
|
||||
_findButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_findButton setTitle:YMLocalizedString(@"XPMineAttentionTableViewCell1") forState:UIControlStateNormal];
|
||||
[_findButton setTitleColor:[DJDKMIMOMColor appEmphasizeColor] forState:UIControlStateNormal];
|
||||
_findButton.titleLabel.font = [UIFont systemFontOfSize:12];
|
||||
_findButton.layer.masksToBounds = YES;
|
||||
_findButton.layer.cornerRadius = 15;
|
||||
_findButton.layer.borderColor = [DJDKMIMOMColor appEmphasizeColor].CGColor;
|
||||
_findButton.layer.borderWidth = 1;
|
||||
_findButton.hidden = YES;
|
||||
[_findButton addTarget:self action:@selector(findButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _findButton;
|
||||
if (!_findButton) {
|
||||
_findButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_findButton setTitle:YMLocalizedString(@"XPMineAttentionTableViewCell1") forState:UIControlStateNormal];
|
||||
[_findButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
UIImage *image = [UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor],[DJDKMIMOMColor confirmButtonGradientMiddleColor],[DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake((68), (30))];
|
||||
[_findButton setBackgroundImage:image forState:UIControlStateNormal];
|
||||
_findButton.titleLabel.font = kFontMedium(14);
|
||||
_findButton.layer.masksToBounds = YES;
|
||||
_findButton.layer.cornerRadius = (15);
|
||||
_findButton.hidden = YES;
|
||||
[_findButton addTarget:self action:@selector(findButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _findButton;
|
||||
}
|
||||
|
||||
- (UIView *)lineView {
|
||||
if (!_lineView) {
|
||||
_lineView = [[UIView alloc] init];
|
||||
_lineView.backgroundColor = [DJDKMIMOMColor dividerColor];
|
||||
}
|
||||
return _lineView;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMMineFansTableViewCell.m
|
||||
// YUMI
|
||||
// XPMineFansTableViewCell.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/12/21.
|
||||
// Created by 冯硕 on 2021/12/21.
|
||||
//
|
||||
|
||||
#import "XPMineFansTableViewCell.h"
|
||||
@@ -11,7 +11,6 @@
|
||||
#import <NIMSDK/NIMSDK.h>
|
||||
///Tool
|
||||
#import "NetImageView.h"
|
||||
#import "DJDKMIMOMColor.h"
|
||||
#import "UIImage+Utils.h"
|
||||
///Model
|
||||
#import "FansInfoModel.h"
|
||||
@@ -35,163 +34,167 @@
|
||||
@property (nonatomic,strong) UILabel *signLabel;
|
||||
///关注
|
||||
@property (nonatomic,strong) UIButton *attentionButton;
|
||||
///分割线
|
||||
@property (nonatomic,strong) UIView * lineView;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation XPMineFansTableViewCell
|
||||
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self.contentView addSubview:self.avatarImageView];
|
||||
[self.contentView addSubview:self.stackView];
|
||||
[self.contentView addSubview:self.signLabel];
|
||||
[self.contentView addSubview:self.attentionButton];
|
||||
[self.contentView addSubview:self.lineView];
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self.contentView addSubview:self.avatarImageView];
|
||||
[self.contentView addSubview:self.stackView];
|
||||
[self.contentView addSubview:self.signLabel];
|
||||
[self.contentView addSubview:self.attentionButton];
|
||||
|
||||
|
||||
[self.stackView addArrangedSubview:self.nobleImageView];
|
||||
[self.stackView addArrangedSubview:self.nickLabel];
|
||||
[self.stackView addArrangedSubview:self.sexImageView];
|
||||
[self.stackView addArrangedSubview:self.experImageView];
|
||||
[self.stackView addArrangedSubview:self.charmImageView];
|
||||
[self.stackView addArrangedSubview:self.nickLabel];
|
||||
[self.stackView addArrangedSubview:self.sexImageView];
|
||||
[self.stackView addArrangedSubview:self.experImageView];
|
||||
[self.stackView addArrangedSubview:self.charmImageView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(55, 55));
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.left.mas_equalTo(self.contentView).offset(15);
|
||||
}];
|
||||
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(10);
|
||||
make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-2);
|
||||
make.right.mas_lessThanOrEqualTo(self.attentionButton.mas_left).mas_offset(-4);
|
||||
}];
|
||||
|
||||
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.stackView);
|
||||
make.top.mas_equalTo(self.avatarImageView.mas_centerY).offset(2);
|
||||
make.right.mas_equalTo(self.attentionButton.mas_left).mas_offset(-4);
|
||||
}];
|
||||
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake((50), (50)));
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.left.mas_equalTo(self.contentView).offset((15));
|
||||
}];
|
||||
|
||||
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.avatarImageView.mas_right).offset((10));
|
||||
make.right.mas_lessThanOrEqualTo(self.attentionButton.mas_left).mas_offset(-(10));
|
||||
make.height.mas_equalTo(((20)));
|
||||
make.top.equalTo(self.avatarImageView.mas_top).mas_offset((3));
|
||||
}];
|
||||
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(28);
|
||||
make.height.mas_equalTo(14);
|
||||
}];
|
||||
[self.attentionButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(65);
|
||||
make.height.mas_equalTo(30);
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.right.mas_equalTo(self.contentView).offset(-15);
|
||||
}];
|
||||
|
||||
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.stackView);
|
||||
make.bottom.mas_equalTo(self.contentView);
|
||||
make.height.mas_equalTo(1);
|
||||
make.right.mas_equalTo(self.contentView).offset(-15);
|
||||
}];
|
||||
// [self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
// make.width.mas_lessThanOrEqualTo((100));
|
||||
// }];
|
||||
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.stackView);
|
||||
make.top.equalTo(self.stackView.mas_bottom).mas_offset((7));
|
||||
make.right.mas_equalTo(self.attentionButton.mas_left).mas_offset(-(10));
|
||||
}];
|
||||
|
||||
[self.attentionButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo((68));
|
||||
make.height.mas_equalTo((30));
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.right.mas_equalTo(self.contentView).offset(-(15));
|
||||
}];
|
||||
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)attentionButtonAction:(UIButton *)sender {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFansTableViewCell:didClickAttention:)]) {
|
||||
[self.delegate xPMineFansTableViewCell:self didClickAttention:self.fansInfo.uid];
|
||||
}
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFansTableViewCell:didClickAttention:)]) {
|
||||
[self.delegate xPMineFansTableViewCell:self didClickAttention:self.fansInfo.uid];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setFansInfo:(FansInfoModel *)fansInfo {
|
||||
_fansInfo = fansInfo;
|
||||
if (_fansInfo) {
|
||||
self.avatarImageView.imageUrl = _fansInfo.avatar;
|
||||
NSString *text = _fansInfo.nick.length > 5 ? [NSString stringWithFormat:@"%@...",[_fansInfo.nick substringToIndex:5]]:_fansInfo.nick;
|
||||
self.nickLabel.text = text;
|
||||
|
||||
self.signLabel.text = _fansInfo.userDesc && _fansInfo.userDesc.length > 0? _fansInfo.userDesc : YMLocalizedString(@"XPMineFansTableViewCell0");
|
||||
if (_fansInfo.useingType != ContactUseingType_In_Room && _fansInfo.useingType != ContactUseingType_Share) {
|
||||
self.experImageView.hidden = NO;
|
||||
self.charmImageView.hidden = NO;
|
||||
self.nobleImageView.hidden = NO;
|
||||
self.sexImageView.hidden = NO;
|
||||
self.attentionButton.hidden = NO;
|
||||
self.experImageView.imageUrl = _fansInfo.experUrl;
|
||||
self.charmImageView.imageUrl = _fansInfo.charmUrl;
|
||||
self.nobleImageView.imageUrl = _fansInfo.userVipInfoVO.vipIcon;
|
||||
|
||||
|
||||
_fansInfo = fansInfo;
|
||||
if (_fansInfo) {
|
||||
self.avatarImageView.imageUrl = _fansInfo.avatar;
|
||||
|
||||
self.nickLabel.text = _fansInfo.nick;
|
||||
self.signLabel.text = _fansInfo.userDesc && _fansInfo.userDesc.length > 0? _fansInfo.userDesc : YMLocalizedString(@"XPMineFansTableViewCell0");
|
||||
if (_fansInfo.useingType != ContactUseingType_In_Room && _fansInfo.useingType != ContactUseingType_Share) {
|
||||
self.experImageView.hidden = NO;
|
||||
self.charmImageView.hidden = NO;
|
||||
if (_fansInfo.userVipInfoVO.vipIcon != nil) {
|
||||
self.nobleImageView.hidden = NO;
|
||||
}else{
|
||||
self.nobleImageView.hidden = YES;
|
||||
}
|
||||
self.sexImageView.hidden = NO;
|
||||
self.attentionButton.hidden = NO;
|
||||
self.experImageView.imageUrl = _fansInfo.experUrl;
|
||||
self.charmImageView.imageUrl = _fansInfo.charmUrl;
|
||||
self.nobleImageView.imageUrl = _fansInfo.userVipInfoVO.vipIcon;
|
||||
|
||||
[self.sexImageView setTitle:[NSString getAgeWithBirth:_fansInfo.birth] forState:UIControlStateNormal];
|
||||
self.sexImageView.backgroundColor = _fansInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
|
||||
|
||||
BOOL isMyFriend = [[NIMSDK sharedSDK].userManager isMyFriend:_fansInfo.uid];
|
||||
self.attentionButton.enabled = !isMyFriend;
|
||||
self.attentionButton.hidden = NO;
|
||||
UIImage* image = self.experImageView.image;
|
||||
if (image) {
|
||||
CGFloat scale = image.size.width / image.size.height;
|
||||
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.experUrl];
|
||||
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
|
||||
CGFloat scale = myImage.size.width / myImage.size.height;
|
||||
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
UIImage* charmImage = self.charmImageView.image;
|
||||
if (charmImage) {
|
||||
CGFloat scale = charmImage.size.width / charmImage.size.height;
|
||||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.charmUrl];
|
||||
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
|
||||
CGFloat scale = myImage.size.width / myImage.size.height;
|
||||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
UIImage *nobleImage = self.nobleImageView.image;
|
||||
if (nobleImage) {
|
||||
CGFloat scale = nobleImage.size.width / nobleImage.size.height;
|
||||
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(0, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
if (fansInfo.userVipInfoVO && fansInfo.userVipInfoVO.friendNickColour) {
|
||||
self.nickLabel.textColor = [self colorWithHexString:fansInfo.userVipInfoVO.friendNickColour];
|
||||
} else {
|
||||
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
} else {
|
||||
self.experImageView.hidden = YES;
|
||||
self.charmImageView.hidden = YES;
|
||||
self.nobleImageView.hidden = YES;
|
||||
self.sexImageView.hidden = YES;
|
||||
self.attentionButton.hidden = YES;
|
||||
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
}
|
||||
|
||||
self.sexImageView.selected = _fansInfo.gender != GenderType_Male;
|
||||
|
||||
|
||||
BOOL isMyFriend = [[NIMSDK sharedSDK].userManager isMyFriend:_fansInfo.uid];
|
||||
self.attentionButton.enabled = !isMyFriend;
|
||||
self.attentionButton.hidden = NO;
|
||||
UIImage* image = self.experImageView.image;
|
||||
if (image) {
|
||||
CGFloat scale = image.size.width / image.size.height;
|
||||
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.experUrl];
|
||||
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
|
||||
CGFloat scale = myImage.size.width / myImage.size.height;
|
||||
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
UIImage* charmImage = self.charmImageView.image;
|
||||
if (charmImage) {
|
||||
CGFloat scale = charmImage.size.width / charmImage.size.height;
|
||||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
NSURL *imgUrl = [NSURL URLWithString:_fansInfo.charmUrl];
|
||||
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
|
||||
CGFloat scale = myImage.size.width / myImage.size.height;
|
||||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
UIImage *nobleImage = self.nobleImageView.image;
|
||||
if (nobleImage) {
|
||||
CGFloat scale = nobleImage.size.width / nobleImage.size.height;
|
||||
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20* scale, 20));
|
||||
}];
|
||||
} else {
|
||||
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(0, 20));
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
if (fansInfo.userVipInfoVO && fansInfo.userVipInfoVO.friendNickColour) {
|
||||
self.nickLabel.textColor = [self colorWithHexString:fansInfo.userVipInfoVO.friendNickColour];
|
||||
} else {
|
||||
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
} else {
|
||||
self.experImageView.hidden = YES;
|
||||
self.charmImageView.hidden = YES;
|
||||
self.nobleImageView.hidden = YES;
|
||||
self.sexImageView.hidden = YES;
|
||||
self.attentionButton.hidden = YES;
|
||||
self.nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (UIColor *)colorWithHexString: (NSString *) hexString {
|
||||
@@ -213,40 +216,40 @@
|
||||
}
|
||||
|
||||
- (NetImageView *)avatarImageView {
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = 55/2;
|
||||
}
|
||||
return _avatarImageView;
|
||||
if (!_avatarImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_avatarImageView.layer.masksToBounds = YES;
|
||||
_avatarImageView.layer.cornerRadius = (50.0/2);
|
||||
}
|
||||
return _avatarImageView;
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentCenter;
|
||||
_stackView.spacing = 2;
|
||||
}
|
||||
return _stackView;
|
||||
if (!_stackView) {
|
||||
_stackView = [[UIStackView alloc] init];
|
||||
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
||||
_stackView.distribution = UIStackViewDistributionFill;
|
||||
_stackView.alignment = UIStackViewAlignmentCenter;
|
||||
_stackView.spacing = (4);
|
||||
}
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (UILabel *)nickLabel {
|
||||
if (!_nickLabel) {
|
||||
_nickLabel = [[UILabel alloc] init];
|
||||
_nickLabel.font = [UIFont systemFontOfSize:15];
|
||||
_nickLabel.textColor = [DJDKMIMOMColor mainTextColor];
|
||||
}
|
||||
return _nickLabel;
|
||||
if (!_nickLabel) {
|
||||
_nickLabel = [[UILabel alloc] init];
|
||||
_nickLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium];
|
||||
_nickLabel.textColor = [DJDKMIMOMColor inputTextColor];
|
||||
}
|
||||
return _nickLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)sexImageView {
|
||||
if (!_sexImageView) {
|
||||
_sexImageView = [[UIButton alloc] init];
|
||||
if (!_sexImageView) {
|
||||
_sexImageView = [[UIButton alloc] init];
|
||||
[_sexImageView setImage:kImage(@"home_age_boy_icon") forState:UIControlStateNormal];
|
||||
[_sexImageView setImage:kImage(@"home_age_girl_icon") forState:UIControlStateSelected];
|
||||
_sexImageView.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
|
||||
@@ -254,26 +257,26 @@
|
||||
_sexImageView.imageEdgeInsets = UIEdgeInsetsMake(0, 2, 0, 0);
|
||||
_sexImageView.layer.cornerRadius = 14/2;
|
||||
_sexImageView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _sexImageView;
|
||||
}
|
||||
return _sexImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)experImageView {
|
||||
if (!_experImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_experImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
}
|
||||
return _experImageView;
|
||||
if (!_experImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_experImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
}
|
||||
return _experImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)charmImageView {
|
||||
if (!_charmImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_charmImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
}
|
||||
return _charmImageView;
|
||||
if (!_charmImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
_charmImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
}
|
||||
return _charmImageView;
|
||||
}
|
||||
|
||||
- (NetImageView *)nobleImageView {
|
||||
@@ -284,37 +287,30 @@
|
||||
}
|
||||
|
||||
- (UILabel *)signLabel{
|
||||
if (!_signLabel) {
|
||||
_signLabel = [[UILabel alloc] init];
|
||||
_signLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
_signLabel.font = [UIFont systemFontOfSize:12];
|
||||
}
|
||||
return _signLabel;
|
||||
if (!_signLabel) {
|
||||
_signLabel = [[UILabel alloc] init];
|
||||
_signLabel.textColor = [DJDKMIMOMColor disableButtonTextColor];
|
||||
_signLabel.font = [UIFont systemFontOfSize:12];
|
||||
}
|
||||
return _signLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)attentionButton {
|
||||
if (!_attentionButton) {
|
||||
_attentionButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_attentionButton setTitle:YMLocalizedString(@"XPMineFansTableViewCell1") forState:UIControlStateNormal];
|
||||
[_attentionButton setTitleColor:[DJDKMIMOMColor confirmButtonTextColor] forState:UIControlStateNormal];
|
||||
_attentionButton.titleLabel.font = [UIFont systemFontOfSize:12];
|
||||
[_attentionButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor], [DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal];
|
||||
[_attentionButton setTitle:YMLocalizedString(@"XPMineFansTableViewCell2") forState:UIControlStateDisabled];
|
||||
[_attentionButton setTitleColor:[DJDKMIMOMColor disableButtonTextColor] forState:UIControlStateDisabled];
|
||||
[_attentionButton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor disableButtonColor]] forState:UIControlStateDisabled];
|
||||
_attentionButton.layer.masksToBounds = YES;
|
||||
_attentionButton.layer.cornerRadius = 15;
|
||||
[_attentionButton addTarget:self action:@selector(attentionButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _attentionButton;
|
||||
if (!_attentionButton) {
|
||||
_attentionButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_attentionButton setTitle:YMLocalizedString(@"XPMineFansTableViewCell1") forState:UIControlStateNormal];
|
||||
[_attentionButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
_attentionButton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
|
||||
[_attentionButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor],[DJDKMIMOMColor confirmButtonGradientMiddleColor],[DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake((68), (30))] forState:UIControlStateNormal];
|
||||
[_attentionButton setTitle:YMLocalizedString(@"XPMineFansTableViewCell2") forState:UIControlStateDisabled];
|
||||
[_attentionButton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor disableButtonColor]] forState:UIControlStateDisabled];
|
||||
_attentionButton.layer.masksToBounds = YES;
|
||||
_attentionButton.layer.cornerRadius = 15;
|
||||
[_attentionButton addTarget:self action:@selector(attentionButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _attentionButton;
|
||||
}
|
||||
|
||||
- (UIView *)lineView {
|
||||
if (!_lineView) {
|
||||
_lineView = [[UIView alloc] init];
|
||||
_lineView.backgroundColor = [DJDKMIMOMColor dividerColor];
|
||||
}
|
||||
return _lineView;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
@@ -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
|
||||
|
@@ -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 {
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMMineAttentionViewController.m
|
||||
// YUMI
|
||||
// XPMineAttentionViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/12/21.
|
||||
// Created by 冯硕 on 2021/12/21.
|
||||
//
|
||||
|
||||
#import "XPMineAttentionViewController.h"
|
||||
@@ -10,10 +10,7 @@
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <MJRefresh/MJRefresh.h>
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
#import "YUMIMacroUitls.h"
|
||||
#import "NSArray+Safe.h"
|
||||
#import "ClientConfig.h"
|
||||
|
||||
///Model
|
||||
#import "FansInfoModel.h"
|
||||
///View
|
||||
@@ -28,7 +25,6 @@
|
||||
#import "RoomHostDelegate.h"
|
||||
///VC
|
||||
#import "XPMineUserInfoViewController.h"
|
||||
#import "XPMineSimpleUserInfoViewController.h"
|
||||
#import "XPRoomViewController.h"
|
||||
#import "SessionViewController.h"
|
||||
|
||||
@@ -51,169 +47,164 @@
|
||||
}
|
||||
|
||||
- (XPMineAttentionPresenter *)createPresenter {
|
||||
return [[XPMineAttentionPresenter alloc] init];
|
||||
return [[XPMineAttentionPresenter alloc] init];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[super viewDidLoad];
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
|
||||
#pragma mark - 下拉刷新
|
||||
- (void)initHeaderAndFooterRrfresh {
|
||||
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
self.tableView.mj_header = header;
|
||||
|
||||
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
|
||||
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
self.tableView.mj_footer = footer;
|
||||
|
||||
[self headerRefresh];
|
||||
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
self.tableView.mj_header = header;
|
||||
|
||||
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
|
||||
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
self.tableView.mj_footer = footer;
|
||||
|
||||
[self headerRefresh];
|
||||
}
|
||||
|
||||
#pragma mark - 刷新的fangfa
|
||||
- (void)headerRefresh {
|
||||
self.page = 1;
|
||||
[self.presenter getUserAttentionList:self.page pageSize:20 state:0];
|
||||
self.page = 1;
|
||||
[self.presenter getUserAttentionList:self.page pageSize:20 state:0];
|
||||
}
|
||||
|
||||
- (void)footerRefresh {
|
||||
if (self.hasNoMoreData) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineAttentionViewController0")];
|
||||
return;
|
||||
}
|
||||
self.page++;
|
||||
[self.presenter getUserAttentionList:self.page pageSize:20 state:1];
|
||||
if (self.hasNoMoreData) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineAttentionViewController0")];
|
||||
return;
|
||||
}
|
||||
self.page++;
|
||||
[self.presenter getUserAttentionList:self.page pageSize:20 state:1];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
if (self.isClearColor){
|
||||
self.view.backgroundColor = [UIColor whiteColor];
|
||||
self.title = YMLocalizedString(@"XPMineAttentionViewController1");
|
||||
if (self.isClearColor) {
|
||||
self.view.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
self.title = YMLocalizedString(@"XPMineAttentionViewController1");
|
||||
[self.view addSubview:self.tableView];
|
||||
|
||||
[self.view addSubview:self.tableView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.view);
|
||||
}];
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.view);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - XPMineAttentionProtocol
|
||||
- (void)getUserAttentionListSuccess:(NSArray *)array state:(int)state {
|
||||
if (state == 0) {
|
||||
[self.datasource removeAllObjects];
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
if (array.count > 0) {
|
||||
self.hasNoMoreData = NO;
|
||||
[self.datasource addObjectsFromArray:array];
|
||||
} else {
|
||||
self.hasNoMoreData = YES;
|
||||
[self.tableView.mj_footer endRefreshingWithNoMoreData];
|
||||
}
|
||||
[self.tableView reloadData];
|
||||
if (state == 0) {
|
||||
[self.datasource removeAllObjects];
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
if (array.count > 0) {
|
||||
self.hasNoMoreData = NO;
|
||||
[self.datasource addObjectsFromArray:array];
|
||||
} else {
|
||||
self.hasNoMoreData = YES;
|
||||
[self.tableView.mj_footer endRefreshingWithNoMoreData];
|
||||
}
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
- (void)getUserAttentionListFail:(int)state {
|
||||
if (state == 0) {
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
if (state == 0) {
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
}
|
||||
#pragma mark - UITableViewDelegate And UITableViewDataSource
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return self.datasource.count > 0 ? self.datasource.count : 1;
|
||||
return self.datasource.count > 0 ? self.datasource.count : 1;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return self.datasource.count > 0 ? 65 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
|
||||
return self.datasource.count > 0 ? 70 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if (self.datasource.count > 0) {
|
||||
XPMineAttentionTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineAttentionTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
|
||||
}
|
||||
cell.delegate = self;
|
||||
FansInfoModel * fansInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
fansInfo.useingType = self.type;
|
||||
cell.fansInfo = fansInfo;
|
||||
return cell;
|
||||
}
|
||||
|
||||
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
}
|
||||
cell.emptyTitle = YMLocalizedString(@"XPMineAttentionViewController2");
|
||||
return cell;
|
||||
if (self.datasource.count > 0) {
|
||||
XPMineAttentionTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineAttentionTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
|
||||
}
|
||||
cell.delegate = self;
|
||||
FansInfoModel * fansInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
fansInfo.useingType = self.type;
|
||||
cell.fansInfo = fansInfo;
|
||||
return cell;
|
||||
}
|
||||
|
||||
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
}
|
||||
cell.emptyTitle = YMLocalizedString(@"XPMineAttentionViewController2");
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
if (self.datasource.count > 0) {
|
||||
FansInfoModel * fansInfoModel = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
if (self.type == ContactUseingType_In_Room) {
|
||||
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:fansInfoModel.uid type:NIMSessionTypeP2P]];
|
||||
sessionVC.openType = SessionListOpenTypeRoom;
|
||||
CATransition *transition = [CATransition animation];
|
||||
transition.duration = 0.3f;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionPush;
|
||||
transition.subtype = kCATransitionFromRight;
|
||||
[self.mainController.view.layer addAnimation:transition forKey:nil];
|
||||
[self.mainController addChildViewController:sessionVC];
|
||||
[self.mainController.view addSubview:sessionVC.view];
|
||||
} else if(self.type == ContactUseingType_Share){
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineAttentionViewController:didSelectItem:)]) {
|
||||
[self.delegate xPMineAttentionViewController:self didSelectItem:fansInfoModel];
|
||||
}
|
||||
} else {
|
||||
|
||||
if ([ClientConfig shareConfig].canOpen) {
|
||||
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
|
||||
userInfoVC.uid = fansInfoModel.uid.integerValue;
|
||||
[self.navigationController pushViewController:userInfoVC animated:YES];
|
||||
}else{
|
||||
XPMineSimpleUserInfoViewController * userInfoVC = [[XPMineSimpleUserInfoViewController alloc] init];
|
||||
userInfoVC.uid = fansInfoModel.uid.integerValue;
|
||||
[self.navigationController pushViewController:userInfoVC animated:YES];
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
if (self.datasource.count > 0) {
|
||||
FansInfoModel * fansInfoModel = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
if (self.type == ContactUseingType_In_Room) {
|
||||
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:fansInfoModel.uid type:NIMSessionTypeP2P]];
|
||||
sessionVC.openType = SessionListOpenTypeRoom;
|
||||
CATransition *transition = [CATransition animation];
|
||||
transition.duration = 0.3f;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionPush;
|
||||
transition.subtype = kCATransitionFromRight;
|
||||
[self.mainController.view.layer addAnimation:transition forKey:nil];
|
||||
[self.mainController addChildViewController:sessionVC];
|
||||
[self.mainController.view addSubview:sessionVC.view];
|
||||
} else if(self.type == ContactUseingType_Share){
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineAttentionViewController:didSelectItem:)]) {
|
||||
[self.delegate xPMineAttentionViewController:self didSelectItem:fansInfoModel];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
|
||||
userInfoVC.uid = fansInfoModel.uid.integerValue;
|
||||
[self.navigationController pushViewController:userInfoVC animated:YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - XPMineAttentionTableViewCellDelegate
|
||||
- (void)xPMineAttentionTableViewCell:(XPMineAttentionTableViewCell *)view findUser:(NSString *)uid {
|
||||
//TODO:退出原来的房间 如果有的话 TODO 总感觉这种处理不太优雅 进房入口多了 怎么办 进房需要整合
|
||||
[self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
if ([obj isKindOfClass:[XPRoomViewController class]]) {
|
||||
[self.navigationController popToRootViewControllerAnimated:NO];
|
||||
XPRoomViewController<RoomHostDelegate> * rooomVC = obj;
|
||||
[rooomVC exitRoom];
|
||||
*stop = YES;
|
||||
}
|
||||
}];
|
||||
[XPRoomViewController openRoom:uid viewController:self];
|
||||
//TODO:退出原来的房间 如果有的话 TODO 总感觉这种处理不太优雅 进房入口多了 怎么办 进房需要整合
|
||||
[self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
if ([obj isKindOfClass:[XPRoomViewController class]]) {
|
||||
[self.navigationController popToRootViewControllerAnimated:NO];
|
||||
XPRoomViewController<RoomHostDelegate> * rooomVC = obj;
|
||||
[rooomVC exitRoom];
|
||||
*stop = YES;
|
||||
}
|
||||
}];
|
||||
[XPRoomViewController openRoom:uid viewController:self];
|
||||
}
|
||||
|
||||
#pragma mark - JXCategoryListContentViewDelegate
|
||||
- (UIView *)listView {
|
||||
return self.view;
|
||||
return self.view;
|
||||
}
|
||||
- (UIScrollView *)listScrollView {
|
||||
return self.tableView;
|
||||
@@ -233,28 +224,27 @@
|
||||
#pragma mark - Getters And Setters
|
||||
|
||||
- (UITableView *)tableView {
|
||||
if (!_tableView) {
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
_tableView.rowHeight = 65;
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
[_tableView registerClass:[XPMineAttentionTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
if (!_tableView) {
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
[_tableView registerClass:[XPMineAttentionTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineAttentionTableViewCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
|
||||
- (NSMutableArray *)datasource {
|
||||
if (!_datasource) {
|
||||
_datasource = [NSMutableArray array];
|
||||
}
|
||||
return _datasource;
|
||||
if (!_datasource) {
|
||||
_datasource = [NSMutableArray array];
|
||||
}
|
||||
return _datasource;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -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];
|
||||
|
||||
|
@@ -1,19 +1,15 @@
|
||||
//
|
||||
// YMMineFansViewController.m
|
||||
// YUMI
|
||||
// XPMineFansViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/12/21.
|
||||
// Created by 冯硕 on 2021/12/21.
|
||||
//
|
||||
|
||||
#import "XPMineFansViewController.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <MJRefresh/MJRefresh.h>
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
#import "YUMIMacroUitls.h"
|
||||
#import "NSArray+Safe.h"
|
||||
#import "ClientConfig.h"
|
||||
///Tool"
|
||||
///Model
|
||||
#import "FansInfoModel.h"
|
||||
///View
|
||||
@@ -24,10 +20,9 @@
|
||||
#import "XPMineFansProtocol.h"
|
||||
///VC
|
||||
#import "XPMineUserInfoViewController.h"
|
||||
#import "XPMineSimpleUserInfoViewController.h"
|
||||
#import "SessionViewController.h"
|
||||
|
||||
@interface XPMineFansViewController ()<UITableViewDelegate,UITableViewDataSource, XPMineFansProtocol, XPMineFansTableViewCellDelegate>
|
||||
#import <JXPagingView/JXPagerView.h>
|
||||
@interface XPMineFansViewController ()<UITableViewDelegate,UITableViewDataSource, XPMineFansProtocol, XPMineFansTableViewCellDelegate,JXPagerViewListViewDelegate>
|
||||
///列表
|
||||
@property (nonatomic,strong) UITableView *tableView;
|
||||
///数据源
|
||||
@@ -47,170 +42,167 @@
|
||||
}
|
||||
|
||||
- (XPMineFansPresenter *)createPresenter {
|
||||
return [[XPMineFansPresenter alloc] init];
|
||||
return [[XPMineFansPresenter alloc] init];
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
[self.tableView reloadData];
|
||||
[super viewWillAppear:animated];
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
|
||||
#pragma mark - 下拉刷新
|
||||
- (void)initHeaderAndFooterRrfresh {
|
||||
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
self.tableView.mj_header = header;
|
||||
|
||||
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
|
||||
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
self.tableView.mj_footer = footer;
|
||||
|
||||
[self headerRefresh];
|
||||
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
self.tableView.mj_header = header;
|
||||
|
||||
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
|
||||
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
self.tableView.mj_footer = footer;
|
||||
|
||||
[self headerRefresh];
|
||||
}
|
||||
|
||||
#pragma mark - 刷新的fangfa
|
||||
- (void)headerRefresh {
|
||||
self.page = 1;
|
||||
[self.presenter getUserFansList:self.page pageSize:20 state:0];
|
||||
self.page = 1;
|
||||
[self.presenter getUserFansList:self.page pageSize:20 state:0];
|
||||
}
|
||||
|
||||
- (void)footerRefresh {
|
||||
if (self.hasNoMoreData) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineFansViewController0")];
|
||||
return;
|
||||
}
|
||||
self.page++;
|
||||
[self.presenter getUserFansList:self.page pageSize:20 state:1];
|
||||
if (self.hasNoMoreData) {
|
||||
[self showErrorToast:YMLocalizedString(@"XPMineFansViewController0")];
|
||||
return;
|
||||
}
|
||||
self.page++;
|
||||
[self.presenter getUserFansList:self.page pageSize:20 state:1];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
if (self.isClearColor){
|
||||
// self.view.backgroundColor = [UIColor whiteColor];
|
||||
self.title = YMLocalizedString(@"XPMineFansViewController1");
|
||||
if(self.isClearColor){
|
||||
self.view.backgroundColor = [UIColor clearColor];
|
||||
}else{
|
||||
self.view.backgroundColor = [UIColor whiteColor];
|
||||
}
|
||||
self.title = YMLocalizedString(@"XPMineFansViewController1");
|
||||
[self.view addSubview:self.tableView];
|
||||
|
||||
[self.view addSubview:self.tableView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.view);
|
||||
}];
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.view);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - XPMineFansProtocol
|
||||
- (void)getUserFansListSuccess:(NSArray *)array state:(int)state {
|
||||
if (state == 0) {
|
||||
[self.datasource removeAllObjects];
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
if (array.count > 0) {
|
||||
self.hasNoMoreData = NO;
|
||||
[self.datasource addObjectsFromArray:array];
|
||||
} else {
|
||||
self.hasNoMoreData = YES;
|
||||
[self.tableView.mj_footer endRefreshingWithNoMoreData];
|
||||
}
|
||||
[self.tableView reloadData];
|
||||
if (state == 0) {
|
||||
[self.datasource removeAllObjects];
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
if (array.count > 0) {
|
||||
self.hasNoMoreData = NO;
|
||||
[self.datasource addObjectsFromArray:array];
|
||||
} else {
|
||||
self.hasNoMoreData = YES;
|
||||
[self.tableView.mj_footer endRefreshingWithNoMoreData];
|
||||
}
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
- (void)getUserFansListFail:(int)state {
|
||||
if (state == 0) {
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
if (state == 0) {
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
} else {
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)attentionFansSuccess {
|
||||
/// 因为不知道是不是接口请求的问题 需要等一会才能 和云信的好友关系同步 所以加个延迟吧
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||
[self showSuccessToast:YMLocalizedString(@"XPMineFansViewController2")];
|
||||
[self.tableView reloadData];
|
||||
});
|
||||
|
||||
/// 因为不知道是不是接口请求的问题 需要等一会才能 和云信的好友关系同步 所以加个延迟吧
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||
[self showSuccessToast:YMLocalizedString(@"XPMineFansViewController2")];
|
||||
[self.tableView reloadData];
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDelegate And UITableViewDataSource
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return self.datasource.count > 0 ? self.datasource.count : 1;
|
||||
return self.datasource.count > 0 ? self.datasource.count : 1;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return self.datasource.count > 0 ? 65 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
|
||||
return self.datasource.count > 0 ? 70 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if (self.datasource.count > 0) {
|
||||
XPMineFansTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineFansTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
|
||||
}
|
||||
cell.delegate = self;
|
||||
FansInfoModel * fansInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
fansInfo.useingType = self.type;
|
||||
cell.fansInfo = fansInfo;
|
||||
return cell;
|
||||
}
|
||||
|
||||
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
}
|
||||
cell.emptyTitle = YMLocalizedString(@"XPMineFansViewController3");
|
||||
return cell;
|
||||
if (self.datasource.count > 0) {
|
||||
XPMineFansTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineFansTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
|
||||
}
|
||||
cell.delegate = self;
|
||||
FansInfoModel * fansInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
fansInfo.useingType = self.type;
|
||||
cell.fansInfo = fansInfo;
|
||||
return cell;
|
||||
}
|
||||
|
||||
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
}
|
||||
cell.emptyTitle = YMLocalizedString(@"XPMineFansViewController3");
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
if (self.datasource.count > 0) {
|
||||
FansInfoModel * fansInfoModel = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
if (self.type == ContactUseingType_In_Room) {
|
||||
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:fansInfoModel.uid type:NIMSessionTypeP2P]];
|
||||
sessionVC.openType = SessionListOpenTypeRoom;
|
||||
CATransition *transition = [CATransition animation];
|
||||
transition.duration = 0.3f;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionPush;
|
||||
transition.subtype = kCATransitionFromRight;
|
||||
[self.mainController.view.layer addAnimation:transition forKey:nil];
|
||||
[self.mainController addChildViewController:sessionVC];
|
||||
[self.mainController.view addSubview:sessionVC.view];
|
||||
} else if(self.type == ContactUseingType_Share) {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFansViewController:didSelectItem:)]) {
|
||||
[self.delegate xPMineFansViewController:self didSelectItem:fansInfoModel];
|
||||
}
|
||||
} else {
|
||||
|
||||
if ([ClientConfig shareConfig].canOpen) {
|
||||
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
|
||||
userInfoVC.uid = fansInfoModel.uid.integerValue;
|
||||
[self.navigationController pushViewController:userInfoVC animated:YES];
|
||||
}else{
|
||||
XPMineSimpleUserInfoViewController * userInfoVC = [[XPMineSimpleUserInfoViewController alloc] init];
|
||||
userInfoVC.uid = fansInfoModel.uid.integerValue;
|
||||
[self.navigationController pushViewController:userInfoVC animated:YES];
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
if (self.datasource.count > 0) {
|
||||
FansInfoModel * fansInfoModel = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
if (self.type == ContactUseingType_In_Room) {
|
||||
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:fansInfoModel.uid type:NIMSessionTypeP2P]];
|
||||
sessionVC.openType = SessionListOpenTypeRoom;
|
||||
CATransition *transition = [CATransition animation];
|
||||
transition.duration = 0.3f;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionPush;
|
||||
transition.subtype = kCATransitionFromRight;
|
||||
[self.mainController.view.layer addAnimation:transition forKey:nil];
|
||||
[self.mainController addChildViewController:sessionVC];
|
||||
[self.mainController.view addSubview:sessionVC.view];
|
||||
} else if(self.type == ContactUseingType_Share) {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFansViewController:didSelectItem:)]) {
|
||||
[self.delegate xPMineFansViewController:self didSelectItem:fansInfoModel];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init];
|
||||
userInfoVC.uid = fansInfoModel.uid.integerValue;
|
||||
[self.navigationController pushViewController:userInfoVC animated:YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - JXCategoryListContentViewDelegate
|
||||
- (UIView *)listView {
|
||||
return self.view;
|
||||
return self.view;
|
||||
}
|
||||
- (UIScrollView *)listScrollView {
|
||||
return self.tableView;
|
||||
@@ -226,36 +218,35 @@
|
||||
}
|
||||
#pragma mark - mark
|
||||
- (void)xPMineFansTableViewCell:(XPMineFansTableViewCell *)view didClickAttention:(NSString *)uid {
|
||||
if (uid.length > 0) {
|
||||
[self.presenter attentionFans:uid];
|
||||
}
|
||||
if (uid.length > 0) {
|
||||
[self.presenter attentionFans:uid];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
|
||||
- (UITableView *)tableView {
|
||||
if (!_tableView) {
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
_tableView.rowHeight = 65;
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
[_tableView registerClass:[XPMineFansTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
if (!_tableView) {
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
[_tableView registerClass:[XPMineFansTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFansTableViewCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
|
||||
- (NSMutableArray *)datasource {
|
||||
if (!_datasource) {
|
||||
_datasource = [NSMutableArray array];
|
||||
}
|
||||
return _datasource;
|
||||
if (!_datasource) {
|
||||
_datasource = [NSMutableArray array];
|
||||
}
|
||||
return _datasource;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//
|
||||
// YMMineFriendViewController.m
|
||||
// YUMI
|
||||
// XPMineFriendViewController.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by YUMI on 2021/12/21.
|
||||
// Created by 冯硕 on 2021/12/21.
|
||||
//
|
||||
|
||||
#import "XPMineFriendViewController.h"
|
||||
@@ -11,9 +11,7 @@
|
||||
#import <MJRefresh/MJRefresh.h>
|
||||
#import <NIMSDK/NIMSDK.h>
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
#import "YUMIMacroUitls.h"
|
||||
#import "NSArray+Safe.h"
|
||||
|
||||
///Model
|
||||
#import "UserInfoModel.h"
|
||||
///View
|
||||
@@ -39,7 +37,7 @@
|
||||
@implementation XPMineFriendViewController
|
||||
|
||||
- (__kindof id)createPresenter {
|
||||
return [[XPMineFriendPresenter alloc] init];
|
||||
return [[XPMineFriendPresenter alloc] init];
|
||||
}
|
||||
|
||||
- (BOOL)isHiddenNavBar {
|
||||
@@ -47,97 +45,98 @@
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
NSArray * array = [[NIMSDK sharedSDK].userManager myFriends];
|
||||
if (array.count > 0) {
|
||||
NSMutableArray * uids = [NSMutableArray array];
|
||||
for (int i = 0; i< array.count; i++) {
|
||||
NIMUser * user = [array safeObjectAtIndex1:i];
|
||||
[uids addObject:user.userId];
|
||||
}
|
||||
[self.presenter getUserListInfo:uids];
|
||||
}
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[super viewDidLoad];
|
||||
NSArray * array = [[NIMSDK sharedSDK].userManager myFriends];
|
||||
if (array.count > 0) {
|
||||
NSMutableArray * uids = [NSMutableArray array];
|
||||
for (int i = 0; i< array.count; i++) {
|
||||
NIMUser * user = [array safeObjectAtIndex1:i];
|
||||
[uids addObject:user.userId];
|
||||
}
|
||||
[self.presenter getUserListInfo:uids];
|
||||
}
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
if (self.isClearColor){
|
||||
self.view.backgroundColor = [UIColor clearColor];
|
||||
}else{
|
||||
self.view.backgroundColor = [UIColor whiteColor];
|
||||
}
|
||||
[self.view addSubview:self.tableView];
|
||||
[self.view addSubview:self.tableView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.view);
|
||||
}];
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.view);
|
||||
}];
|
||||
}
|
||||
#pragma mark - UITableViewDelegate And UITableViewDataSource
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return self.datasource.count > 0 ? self.datasource.count : 1;
|
||||
return self.datasource.count > 0 ? self.datasource.count : 1;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
return self.datasource.count > 0 ? 65 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
|
||||
return self.datasource.count > 0 ? 70 : self.type == ContactUseingType_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight);
|
||||
}
|
||||
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if (self.datasource.count > 0) {
|
||||
XPMineFriendTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineFriendTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
|
||||
}
|
||||
cell.userInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
return cell;
|
||||
}
|
||||
|
||||
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
}
|
||||
cell.emptyTitle = YMLocalizedString(@"XPMineFriendViewController0");
|
||||
return cell;
|
||||
if (self.datasource.count > 0) {
|
||||
XPMineFriendTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineFriendTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
|
||||
}
|
||||
cell.userInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
return cell;
|
||||
}
|
||||
|
||||
XPMineFriendEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
if (cell == nil) {
|
||||
cell = [[XPMineFriendEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
}
|
||||
cell.emptyTitle = YMLocalizedString(@"XPMineFriendViewController0");
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
if (self.datasource.count > 0) {
|
||||
UserInfoModel * userInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
if (self.type == ContactUseingType_Share) {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFriendViewController:didSelectItem:)]) {
|
||||
[self.delegate xPMineFriendViewController:self didSelectItem:userInfo];
|
||||
}
|
||||
} else if(self.type == ContactUseingType_In_Room) {
|
||||
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:[NSString stringWithFormat:@"%ld", userInfo.uid] type:NIMSessionTypeP2P]];
|
||||
sessionVC.openType = SessionListOpenTypeRoom;
|
||||
CATransition *transition = [CATransition animation];
|
||||
transition.duration = 0.3f;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionPush;
|
||||
transition.subtype = kCATransitionFromRight;
|
||||
[self.mainController.view.layer addAnimation:transition forKey:nil];
|
||||
[self.mainController addChildViewController:sessionVC];
|
||||
[self.mainController.view addSubview:sessionVC.view];
|
||||
} else {
|
||||
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:[NSString stringWithFormat:@"%ld", userInfo.uid] type:NIMSessionTypeP2P]];
|
||||
sessionVC.openType = SessionListOpenTypeRoom;
|
||||
[self.navigationController pushViewController:sessionVC animated:YES];
|
||||
}
|
||||
}
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
if (self.datasource.count > 0) {
|
||||
UserInfoModel * userInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
if (self.type == ContactUseingType_Share) {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineFriendViewController:didSelectItem:)]) {
|
||||
[self.delegate xPMineFriendViewController:self didSelectItem:userInfo];
|
||||
}
|
||||
} else if(self.type == ContactUseingType_In_Room) {
|
||||
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:[NSString stringWithFormat:@"%ld", userInfo.uid] type:NIMSessionTypeP2P]];
|
||||
sessionVC.openType = SessionListOpenTypeRoom;
|
||||
CATransition *transition = [CATransition animation];
|
||||
transition.duration = 0.3f;
|
||||
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
transition.type = kCATransitionPush;
|
||||
transition.subtype = kCATransitionFromRight;
|
||||
[self.mainController.view.layer addAnimation:transition forKey:nil];
|
||||
[self.mainController addChildViewController:sessionVC];
|
||||
[self.mainController.view addSubview:sessionVC.view];
|
||||
} else {
|
||||
SessionViewController * sessionVC = [[SessionViewController alloc] initWithSession:[NIMSession session:[NSString stringWithFormat:@"%ld", userInfo.uid] type:NIMSessionTypeP2P]];
|
||||
sessionVC.openType = self.type == ContactUseingType_In_Session ? SessionListOpenTypeDefault : SessionListOpenTypeRoom;
|
||||
[self.navigationController pushViewController:sessionVC animated:YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - XPMineFriendProtocol
|
||||
- (void)getUserListInfoSuccess:(NSArray *)list {
|
||||
self.datasource = list;
|
||||
[self.tableView reloadData];
|
||||
self.datasource = list;
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
#pragma mark - JXCategoryListContentViewDelegate
|
||||
- (UIView *)listView {
|
||||
return self.view;
|
||||
return self.view;
|
||||
}
|
||||
- (UIScrollView *)listScrollView {
|
||||
return self.tableView;
|
||||
@@ -151,24 +150,23 @@
|
||||
self.scrollCallback(scrollView);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
|
||||
- (UITableView *)tableView {
|
||||
if (!_tableView) {
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
_tableView.rowHeight = 65;
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
[_tableView registerClass:[XPMineFriendTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
if (!_tableView) {
|
||||
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
||||
_tableView.delegate = self;
|
||||
_tableView.dataSource = self;
|
||||
_tableView.tableFooterView = [UIView new];
|
||||
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
_tableView.backgroundColor = [UIColor clearColor];
|
||||
_tableView.rowHeight = 65;
|
||||
if (@available(iOS 11.0, *)) {
|
||||
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
||||
}
|
||||
[_tableView registerClass:[XPMineFriendEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendEmptyTableViewCell class])];
|
||||
[_tableView registerClass:[XPMineFriendTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineFriendTableViewCell class])];
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
@end
|
||||
|
@@ -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;
|
||||
|
@@ -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){
|
||||
|
@@ -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;
|
||||
|
@@ -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) {
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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];
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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));
|
||||
|
@@ -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 {
|
||||
|
@@ -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];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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) {
|
||||
|
@@ -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;
|
||||
|
@@ -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 {
|
||||
|
@@ -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];
|
||||
|
@@ -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];
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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 {
|
||||
|
@@ -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) {
|
||||
|
@@ -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;
|
||||
|
@@ -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) {
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -3068,6 +3068,16 @@
|
||||
///XPGiftFreeItemCell
|
||||
"XPGiftFreeItemCell0"="免费礼物";
|
||||
"XPGiftFreeItemCell1"="礼物名称";
|
||||
///SessionDiscoverNewTableViewCell.m
|
||||
"SessionDiscoverNewTableViewCell0" = "发现萌新";
|
||||
///XPMineSimpleUserInfoHeaderView
|
||||
"XPMineSimpleUserInfoHeaderView0"="這個人很懶,還沒有簽名嗷~";
|
||||
"XPMineSimpleUserInfoHeaderView1"="這個人很懶,還沒有簽名嗷~";
|
||||
"XPMineSimpleUserInfoHeaderView2"="直播中";
|
||||
"XPMineSimpleUserInfoHeaderView3"="礼物墙";
|
||||
"XPMineSimpleUserInfoHeaderView4"="礼物墙";
|
||||
"XPMineSimpleUserInfoHeaderView5"="幸运礼物";
|
||||
"XPMineSimpleUserInfoHeaderView6"="动态";
|
||||
///不能脚本生成的
|
||||
"App_Common_And" = "和";
|
||||
"App_Common_Male" = "男";
|
||||
|
@@ -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" = "男";
|
||||
|
Reference in New Issue
Block a user