Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 7c9f1de

Browse filesBrowse files
committed
添加项目成员
1 parent 75ea0f2 commit 7c9f1de
Copy full SHA for 7c9f1de

File tree

Expand file treeCollapse file tree

9 files changed

+199
-63
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

9 files changed

+199
-63
lines changed
Open diff view settings
Collapse file

‎Coding_iOS.xcodeproj/project.pbxproj‎

Copy file name to clipboardExpand all lines: Coding_iOS.xcodeproj/project.pbxproj
+8Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,8 @@
370370
4E6CBE511D8E962300644086 /* TopicAnswerDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6CBE501D8E962300644086 /* TopicAnswerDetailViewController.m */; };
371371
4E6CBE541D8EA9D100644086 /* icon_best_answer@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6CBE521D8EA9D100644086 /* icon_best_answer@2x.png */; };
372372
4E6CBE551D8EA9D100644086 /* icon_best_answer@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6CBE531D8EA9D100644086 /* icon_best_answer@3x.png */; };
373+
4E6CBE581D8FBDF500644086 /* messageProjectFans@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6CBE561D8FBDF500644086 /* messageProjectFans@2x.png */; };
374+
4E6CBE591D8FBDF500644086 /* messageProjectFollows@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6CBE571D8FBDF500644086 /* messageProjectFollows@2x.png */; };
373375
4E6D71891A75F00E005AD988 /* YLGIFImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6D71861A75F00E005AD988 /* YLGIFImage.m */; };
374376
4E6D718A1A75F00E005AD988 /* YLImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6D71881A75F00E005AD988 /* YLImageView.m */; };
375377
4E6FB0551B5799B100B0A17B /* ProjectTag.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6FB0541B5799B100B0A17B /* ProjectTag.m */; };
@@ -1700,6 +1702,8 @@
17001702
4E6CBE501D8E962300644086 /* TopicAnswerDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TopicAnswerDetailViewController.m; sourceTree = "<group>"; };
17011703
4E6CBE521D8EA9D100644086 /* icon_best_answer@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_best_answer@2x.png"; sourceTree = "<group>"; };
17021704
4E6CBE531D8EA9D100644086 /* icon_best_answer@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_best_answer@3x.png"; sourceTree = "<group>"; };
1705+
4E6CBE561D8FBDF500644086 /* messageProjectFans@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "messageProjectFans@2x.png"; sourceTree = "<group>"; };
1706+
4E6CBE571D8FBDF500644086 /* messageProjectFollows@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "messageProjectFollows@2x.png"; sourceTree = "<group>"; };
17031707
4E6D71851A75F00E005AD988 /* YLGIFImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YLGIFImage.h; sourceTree = "<group>"; };
17041708
4E6D71861A75F00E005AD988 /* YLGIFImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YLGIFImage.m; sourceTree = "<group>"; };
17051709
4E6D71871A75F00E005AD988 /* YLImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YLImageView.h; sourceTree = "<group>"; };
@@ -3375,6 +3379,8 @@
33753379
4E6383B01B32640900D98648 /* message */ = {
33763380
isa = PBXGroup;
33773381
children = (
3382+
4E6CBE561D8FBDF500644086 /* messageProjectFans@2x.png */,
3383+
4E6CBE571D8FBDF500644086 /* messageProjectFollows@2x.png */,
33783384
4E6383B11B32640900D98648 /* messageAT@2x.png */,
33793385
4E6383B21B32640900D98648 /* messageComment@2x.png */,
33803386
4E6383B51B32640900D98648 /* messageSystem@2x.png */,
@@ -5890,6 +5896,7 @@
58905896
8EA6D1A819E240C40076D59C /* xtsegment_bordor_left@2x.png in Resources */,
58915897
4EB52F5C1C7C5C4F00B5EBEA /* task_resource_reference_MergeRequestBean@2x.png in Resources */,
58925898
8E525C8A19F7E3F800496B34 /* blankpage_image_loadFail@2x.png in Resources */,
5899+
4E6CBE591D8FBDF500644086 /* messageProjectFollows@2x.png in Resources */,
58935900
4E095A7E1B6B1E40008DC439 /* calendar_0xF24B4B@2x.png in Resources */,
58945901
4E5D13091C0ECB3400985AEB /* tweet_btn_comment@2x.png in Resources */,
58955902
4E095A6E1B69F920008DC439 /* banner__page_unselected@2x.png in Resources */,
@@ -6211,6 +6218,7 @@
62116218
D0C447A91C02A3C700DC1C4B /* task_normal@2x.png in Resources */,
62126219
4E96E7E41A1B537E0037C098 /* icon_file_xls@2x.png in Resources */,
62136220
4E2DB3491BA6AEB4002F27C4 /* coding_emoji_gif_04@2x.png in Resources */,
6221+
4E6CBE581D8FBDF500644086 /* messageProjectFans@2x.png in Resources */,
62146222
927AFF531BFF6DAD00AAE593 /* shop_nar_history_icon@3x.png in Resources */,
62156223
4EC461B41B39360F00D08970 /* file_changeType_MODIFY@2x.png in Resources */,
62166224
D0C447A71C02A3C700DC1C4B /* project_normal@2x.png in Resources */,
Collapse file

‎Coding_iOS/Controllers/AddUserViewController.h‎

Copy file name to clipboardExpand all lines: Coding_iOS/Controllers/AddUserViewController.h
+6-3Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,17 @@
1111
#import "ProjectMember.h"
1212

1313
typedef NS_ENUM(NSInteger, AddUserType) {
14-
AddUserTypeProject = 0,
15-
AddUserTypeFollow
14+
AddUserTypeProjectRoot = 0,
15+
AddUserTypeProjectFollows,//我的关注
16+
AddUserTypeProjectFans,//我的粉丝
17+
AddUserTypeFollow//添加好友
1618
};
1719
@interface AddUserViewController : BaseViewController<UITableViewDataSource, UITableViewDelegate, UISearchBarDelegate>
1820

1921
@property (assign, nonatomic) AddUserType type;
2022
@property (strong, nonatomic) Project *curProject;
2123
@property (copy, nonatomic) void(^popSelfBlock)();
22-
@property (strong, nonatomic) NSMutableArray *queryingArray, *addedArray, *searchedArray;
24+
@property (strong, nonatomic) NSMutableArray *queryingArray, *addedArray;
25+
@property (strong, nonatomic) NSArray *searchedArray;
2326
- (void)configAddedArrayWithMembers:(NSArray *)memberArray;
2427
@end
Collapse file

‎Coding_iOS/Controllers/AddUserViewController.m‎

Copy file name to clipboardExpand all lines: Coding_iOS/Controllers/AddUserViewController.m
+171-57Lines changed: 171 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,26 @@
1111
#import "UserCell.h"
1212
#import "UserInfoViewController.h"
1313
#import "Coding_NetAPIManager.h"
14+
#import "ToMessageCell.h"
15+
#import "ODRefreshControl.h"
16+
1417

1518
@interface AddUserViewController ()
1619
@property (strong, nonatomic) UISearchBar *mySearchBar;
1720
@property (strong, nonatomic) UITableView *myTableView;
21+
@property (strong, nonatomic) ODRefreshControl *myRefreshControl;
22+
@property (strong, nonatomic) Users *curUsers;
1823
@end
1924

2025
@implementation AddUserViewController
2126

2227
- (void)viewDidLoad {
2328
[super viewDidLoad];
2429
// Do any additional setup after loading the view.
25-
if (self.type == AddUserTypeProject) {
26-
self.title = @"添加成员";
30+
if (self.type < AddUserTypeFollow) {
31+
self.title = (self.type == AddUserTypeProjectRoot? @"添加成员":
32+
self.type == AddUserTypeProjectFollows? @"我的关注":
33+
@"我的粉丝");
2734
_queryingArray = [NSMutableArray array];
2835
_searchedArray = [NSMutableArray array];
2936
}else if (self.type == AddUserTypeFollow){
@@ -37,6 +44,7 @@ - (void)viewDidLoad {
3744
tableView.dataSource = self;
3845
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
3946
[tableView registerClass:[UserCell class] forCellReuseIdentifier:kCellIdentifier_UserCell];
47+
[tableView registerClass:[ToMessageCell class] forCellReuseIdentifier:kCellIdentifier_ToMessage];
4048
[self.view addSubview:tableView];
4149
[tableView mas_makeConstraints:^(MASConstraintMaker *make) {
4250
make.edges.equalTo(self.view);
@@ -51,11 +59,31 @@ - (void)viewDidLoad {
5159
searchBar;
5260
});
5361
_myTableView.tableHeaderView = _mySearchBar;
62+
if (self.type == AddUserTypeProjectFollows || self.type == AddUserTypeProjectFans) {
63+
_myRefreshControl = [[ODRefreshControl alloc] initInScrollView:self.myTableView];
64+
[_myRefreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged];
65+
_curUsers = [Users usersWithOwner:[Login curLoginUser] Type:self.type == AddUserTypeProjectFollows? UsersTypeFriends_Attentive: UsersTypeFollowers];
66+
[self refresh];
67+
}
5468
}
5569

56-
- (void)didReceiveMemoryWarning {
57-
[super didReceiveMemoryWarning];
58-
// Dispose of any resources that can be recreated.
70+
- (void)refresh{
71+
if (_curUsers.isLoading) {
72+
return;
73+
}
74+
_curUsers.willLoadMore = NO;
75+
if (_curUsers.list.count <= 0) {
76+
[self.view beginLoading];
77+
}
78+
__weak typeof(self) weakSelf = self;
79+
[[Coding_NetAPIManager sharedManager] request_FollowersOrFriends_WithObj:self.curUsers andBlock:^(id data, NSError *error) {
80+
[weakSelf.myRefreshControl endRefreshing];
81+
[weakSelf.view endLoading];
82+
if (data) {
83+
[weakSelf.curUsers configWithObj:data];
84+
[weakSelf searchUserWithStr:weakSelf.mySearchBar.text];
85+
}
86+
}];
5987
}
6088

6189
- (void)viewDidDisappear:(BOOL)animated{
@@ -74,7 +102,9 @@ - (void)viewDidAppear:(BOOL)animated{
74102
}
75103

76104
- (void)configAddedArrayWithMembers:(NSArray *)memberArray{
77-
_addedArray = [NSMutableArray array];
105+
if (!_addedArray) {
106+
_addedArray = [NSMutableArray array];
107+
}
78108
for (ProjectMember *member in memberArray) {
79109
[_addedArray addObject:member.user];
80110
}
@@ -97,51 +127,72 @@ - (BOOL)userIsQuering:(User *)curUser{
97127
}
98128
#pragma mark Table M
99129
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
100-
return _searchedArray.count;
130+
if (self.type == AddUserTypeProjectRoot && _searchedArray.count == 0) {
131+
return 2;
132+
}else{
133+
return _searchedArray.count;
134+
}
101135
}
102136

103137
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
104-
__weak typeof(self) weakSelf = self;
105-
106-
UserCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_UserCell forIndexPath:indexPath];
107-
User *curUser = [_searchedArray objectAtIndex:indexPath.row];
108-
cell.curUser = curUser;
109-
if (self.type == AddUserTypeProject) {
110-
cell.usersType = UsersTypeAddToProject;
111-
cell.isInProject = [self userIsInProject:curUser];
112-
cell.isQuerying = [self userIsQuering:curUser];
113-
cell.leftBtnClickedBlock = ^(User *clickedUser){
114-
NSLog(@"add %@ to pro:%@", clickedUser.name, weakSelf.curProject.name);
115-
if (![weakSelf userIsQuering:clickedUser]) {
116-
// 添加改用户到项目
117-
[weakSelf.queryingArray addObject:clickedUser];
118-
[weakSelf.myTableView reloadData];
119-
120-
[[Coding_NetAPIManager sharedManager] request_AddUser:clickedUser ToProject:weakSelf.curProject andBlock:^(id data, NSError *error) {
121-
if (data) {
122-
[weakSelf.addedArray addObject:clickedUser];
123-
}
124-
[weakSelf.queryingArray removeObject:clickedUser];
125-
[weakSelf.myTableView reloadData];
126-
}];
127-
}
128-
};
138+
if (self.type == AddUserTypeProjectRoot && _searchedArray.count == 0) {
139+
ToMessageCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_ToMessage forIndexPath:indexPath];
140+
cell.type = ToMessageTypeProjectFollows + indexPath.row;
141+
[tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth];
142+
return cell;
129143
}else{
130-
cell.usersType = UsersTypeAddFriend;
131-
cell.leftBtnClickedBlock = nil;
144+
__weak typeof(self) weakSelf = self;
145+
UserCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_UserCell forIndexPath:indexPath];
146+
User *curUser = [_searchedArray objectAtIndex:indexPath.row];
147+
cell.curUser = curUser;
148+
if (self.type < AddUserTypeFollow) {
149+
cell.usersType = UsersTypeAddToProject;
150+
cell.isInProject = [self userIsInProject:curUser];
151+
cell.isQuerying = [self userIsQuering:curUser];
152+
cell.leftBtnClickedBlock = ^(User *clickedUser){
153+
NSLog(@"add %@ to pro:%@", clickedUser.name, weakSelf.curProject.name);
154+
if (![weakSelf userIsQuering:clickedUser]) {
155+
// 添加改用户到项目
156+
[weakSelf.queryingArray addObject:clickedUser];
157+
[weakSelf.myTableView reloadData];
158+
159+
[[Coding_NetAPIManager sharedManager] request_AddUser:clickedUser ToProject:weakSelf.curProject andBlock:^(id data, NSError *error) {
160+
if (data) {
161+
[weakSelf.addedArray addObject:clickedUser];
162+
}
163+
[weakSelf.queryingArray removeObject:clickedUser];
164+
[weakSelf.myTableView reloadData];
165+
}];
166+
}
167+
};
168+
}else{
169+
cell.usersType = UsersTypeAddFriend;
170+
cell.leftBtnClickedBlock = nil;
171+
}
172+
[tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:60];
173+
return cell;
132174
}
133-
134-
[tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:60];
135-
return cell;
136175
}
137176

138177
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
139-
return [UserCell cellHeight];
178+
if (self.type == AddUserTypeProjectRoot && _searchedArray.count == 0) {
179+
return [ToMessageCell cellHeight];
180+
}else{
181+
return [UserCell cellHeight];
182+
}
140183
}
141184

142185
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
143186
[tableView deselectRowAtIndexPath:indexPath animated:YES];
144-
[self goToUserInfo:[_searchedArray objectAtIndex:indexPath.row]];
187+
if (self.type == AddUserTypeProjectRoot && _searchedArray.count == 0) {
188+
AddUserViewController *vc = [AddUserViewController new];
189+
vc.curProject = _curProject;
190+
vc.type = AddUserTypeProjectFollows + indexPath.row;
191+
vc.addedArray = self.addedArray;
192+
[self.navigationController pushViewController:vc animated:YES];
193+
}else{
194+
[self goToUserInfo:[_searchedArray objectAtIndex:indexPath.row]];
195+
}
145196
}
146197

147198
- (void)goToUserInfo:(User *)user{
@@ -172,28 +223,91 @@ - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
172223
}
173224

174225
- (void)searchUserWithStr:(NSString *)string{
175-
NSString *strippedStr = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
176-
if (strippedStr.length > 0) {
177-
__weak typeof(self) weakSelf = self;
178-
[[Coding_NetAPIManager sharedManager] request_Users_WithSearchString:string andBlock:^(id data, NSError *error) {
179-
if (data) {
180-
weakSelf.searchedArray = data;
181-
[weakSelf.myTableView reloadData];
182-
}
183-
}];
226+
NSString *strippedStr = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
227+
if (self.type == AddUserTypeProjectRoot || self.type == AddUserTypeFollow) {
228+
if (strippedStr.length > 0) {
229+
__weak typeof(self) weakSelf = self;
230+
[[Coding_NetAPIManager sharedManager] request_Users_WithSearchString:string andBlock:^(id data, NSError *error) {
231+
if (data) {
232+
weakSelf.searchedArray = data;
233+
[weakSelf.myTableView reloadData];
234+
}
235+
}];
236+
}else{
237+
_searchedArray = nil;
238+
[_myTableView reloadData];
239+
}
184240
}else{
185-
[_searchedArray removeAllObjects];
186-
[_myTableView reloadData];
241+
if (strippedStr.length > 0) {
242+
[self updateFilteredContentForSearchString:strippedStr];
243+
}else{
244+
_searchedArray = _curUsers.list.copy;
245+
[_myTableView reloadData];
246+
}
187247
}
188-
189248
}
190249

191-
192-
- (void)dealloc
193-
{
194-
_myTableView.delegate = nil;
195-
_myTableView.dataSource = nil;
250+
- (void)updateFilteredContentForSearchString:(NSString *)searchString{
251+
// start out with the entire list
252+
NSMutableArray *searchResults = [self.curUsers.list mutableCopy];
253+
254+
// strip out all the leading and trailing spaces
255+
NSString *strippedStr = [searchString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
256+
257+
// break up the search terms (separated by spaces)
258+
NSArray *searchItems = nil;
259+
if (strippedStr.length > 0)
260+
{
261+
searchItems = [strippedStr componentsSeparatedByString:@" "];
262+
}
263+
264+
// build all the "AND" expressions for each value in the searchString
265+
NSMutableArray *andMatchPredicates = [NSMutableArray array];
266+
267+
for (NSString *searchString in searchItems)
268+
{
269+
// each searchString creates an OR predicate for: name, global_key
270+
NSMutableArray *searchItemsPredicate = [NSMutableArray array];
271+
272+
// name field matching
273+
NSExpression *lhs = [NSExpression expressionForKeyPath:@"name"];
274+
NSExpression *rhs = [NSExpression expressionForConstantValue:searchString];
275+
NSPredicate *finalPredicate = [NSComparisonPredicate
276+
predicateWithLeftExpression:lhs
277+
rightExpression:rhs
278+
modifier:NSDirectPredicateModifier
279+
type:NSContainsPredicateOperatorType
280+
options:NSCaseInsensitivePredicateOption];
281+
[searchItemsPredicate addObject:finalPredicate];
282+
// pinyinName field matching
283+
lhs = [NSExpression expressionForKeyPath:@"pinyinName"];
284+
rhs = [NSExpression expressionForConstantValue:searchString];
285+
finalPredicate = [NSComparisonPredicate
286+
predicateWithLeftExpression:lhs
287+
rightExpression:rhs
288+
modifier:NSDirectPredicateModifier
289+
type:NSContainsPredicateOperatorType
290+
options:NSCaseInsensitivePredicateOption];
291+
[searchItemsPredicate addObject:finalPredicate];
292+
// global_key field matching
293+
lhs = [NSExpression expressionForKeyPath:@"global_key"];
294+
rhs = [NSExpression expressionForConstantValue:searchString];
295+
finalPredicate = [NSComparisonPredicate
296+
predicateWithLeftExpression:lhs
297+
rightExpression:rhs
298+
modifier:NSDirectPredicateModifier
299+
type:NSContainsPredicateOperatorType
300+
options:NSCaseInsensitivePredicateOption];
301+
[searchItemsPredicate addObject:finalPredicate];
302+
// at this OR predicate to ourr master AND predicate
303+
NSCompoundPredicate *orMatchPredicates = (NSCompoundPredicate *)[NSCompoundPredicate orPredicateWithSubpredicates:searchItemsPredicate];
304+
[andMatchPredicates addObject:orMatchPredicates];
305+
}
306+
307+
NSCompoundPredicate *finalCompoundPredicate = (NSCompoundPredicate *)[NSCompoundPredicate andPredicateWithSubpredicates:andMatchPredicates];
308+
309+
self.searchedArray = [searchResults filteredArrayUsingPredicate:finalCompoundPredicate].copy;
310+
[self.myTableView reloadData];
196311
}
197312

198-
199313
@end
Collapse file

‎Coding_iOS/Controllers/ProjectViewController.m‎

Copy file name to clipboardExpand all lines: Coding_iOS/Controllers/ProjectViewController.m
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ - (void)navRightBtnClicked{
542542
__weak typeof(self) weakSelf = self;
543543
AddUserViewController *vc = [[AddUserViewController alloc] init];
544544
vc.curProject = self.myProject;
545-
vc.type = AddUserTypeProject;
545+
vc.type = AddUserTypeProjectRoot;
546546
if (_proMemberVC && _proMemberVC.myMemberArray) {
547547
[vc configAddedArrayWithMembers:_proMemberVC.myMemberArray];
548548
}
Collapse file
3.08 KB
  • Display the source diff
  • Display the rich diff
Loading
Collapse file
2.91 KB
  • Display the source diff
  • Display the rich diff
Loading
Collapse file

‎Coding_iOS/Views/Cell/MemberCell.m‎

Copy file name to clipboardExpand all lines: Coding_iOS/Views/Cell/MemberCell.m
+2-1Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@ - (void)setCurMember:(ProjectMember *)curMember{
117117
if (_curMember.user_id.intValue != [Login curLoginUser].id.integerValue) {//「私信」按钮
118118
// 别人
119119
[_leftBtn configPriMsgBtnWithUser:_curMember.user fromCell:YES];
120-
_leftBtn.hidden = NO;
120+
// _leftBtn.hidden = NO;
121+
_leftBtn.hidden = YES;//说是不要私信按钮了
121122
}else{
122123
// 自己
123124
if (_curMember.type.intValue == 100) {//项目创建者不能「退出」
Collapse file

‎Coding_iOS/Views/Cell/ToMessageCell.h‎

Copy file name to clipboardExpand all lines: Coding_iOS/Views/Cell/ToMessageCell.h
+3-1Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
typedef NS_ENUM(NSInteger, ToMessageType) {
1313
ToMessageTypeAT = 0,
1414
ToMessageTypeComment,
15-
ToMessageTypeSystemNotification
15+
ToMessageTypeSystemNotification,
16+
ToMessageTypeProjectFollows,
17+
ToMessageTypeProjectFans,
1618
};
1719

1820
@interface ToMessageCell : UITableViewCell

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.