修改图片浏览中双击问题

This commit is contained in:
wu736139669
2015-06-07 12:11:13 +08:00
parent 68d4ee5791
commit 8928c4d01b
16 changed files with 458 additions and 145 deletions
+36
View File
@@ -94,6 +94,10 @@
A968627C1ACCF3D200DDAA6B /* cellmorebtnnormalN@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A968627B1ACCF3D200DDAA6B /* cellmorebtnnormalN@2x.png */; };
A968627E1ACCF46E00DDAA6B /* cellmorebtnclickN@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A968627D1ACCF46E00DDAA6B /* cellmorebtnclickN@2x.png */; };
A96F27EE1B2195BA00DA0A66 /* UIImageView+Reloading.m in Sources */ = {isa = PBXBuildFile; fileRef = A96F27ED1B2195BA00DA0A66 /* UIImageView+Reloading.m */; };
A96F27F41B21C5AC00DA0A66 /* PraiseUserListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A96F27F21B21C5AC00DA0A66 /* PraiseUserListTableViewCell.m */; };
A96F27F51B21C5AC00DA0A66 /* PraiseUserListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = A96F27F31B21C5AC00DA0A66 /* PraiseUserListTableViewCell.xib */; };
A96F27F91B21C5C800DA0A66 /* PraiseUserListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A96F27F71B21C5C800DA0A66 /* PraiseUserListViewController.m */; };
A96F27FA1B21C5C800DA0A66 /* PraiseUserListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A96F27F81B21C5C800DA0A66 /* PraiseUserListViewController.xib */; };
A9754A1C1ADC080E0018BAAD /* AudioPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = A9754A0F1ADC080E0018BAAD /* AudioPlayer.m */; };
A9754A1D1ADC080E0018BAAD /* AutoRecoveringHttpDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A9754A111ADC080E0018BAAD /* AutoRecoveringHttpDataSource.m */; };
A9754A1E1ADC080E0018BAAD /* CoreFoundationDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A9754A131ADC080E0018BAAD /* CoreFoundationDataSource.m */; };
@@ -360,6 +364,12 @@
A968627D1ACCF46E00DDAA6B /* cellmorebtnclickN@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cellmorebtnclickN@2x.png"; sourceTree = "<group>"; };
A96F27EC1B2195BA00DA0A66 /* UIImageView+Reloading.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImageView+Reloading.h"; sourceTree = "<group>"; };
A96F27ED1B2195BA00DA0A66 /* UIImageView+Reloading.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImageView+Reloading.m"; sourceTree = "<group>"; };
A96F27F11B21C5AC00DA0A66 /* PraiseUserListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PraiseUserListTableViewCell.h; sourceTree = "<group>"; };
A96F27F21B21C5AC00DA0A66 /* PraiseUserListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PraiseUserListTableViewCell.m; sourceTree = "<group>"; };
A96F27F31B21C5AC00DA0A66 /* PraiseUserListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PraiseUserListTableViewCell.xib; sourceTree = "<group>"; };
A96F27F61B21C5C800DA0A66 /* PraiseUserListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PraiseUserListViewController.h; sourceTree = "<group>"; };
A96F27F71B21C5C800DA0A66 /* PraiseUserListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PraiseUserListViewController.m; sourceTree = "<group>"; };
A96F27F81B21C5C800DA0A66 /* PraiseUserListViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PraiseUserListViewController.xib; sourceTree = "<group>"; };
A9754A0E1ADC080E0018BAAD /* AudioPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioPlayer.h; sourceTree = "<group>"; };
A9754A0F1ADC080E0018BAAD /* AudioPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioPlayer.m; sourceTree = "<group>"; };
A9754A101ADC080E0018BAAD /* AutoRecoveringHttpDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoRecoveringHttpDataSource.h; sourceTree = "<group>"; };
@@ -787,6 +797,26 @@
path = PSTCollectionView;
sourceTree = "<group>";
};
A96F27EF1B21B98900DA0A66 /* User */ = {
isa = PBXGroup;
children = (
A96F27F61B21C5C800DA0A66 /* PraiseUserListViewController.h */,
A96F27F71B21C5C800DA0A66 /* PraiseUserListViewController.m */,
A96F27F81B21C5C800DA0A66 /* PraiseUserListViewController.xib */,
);
path = User;
sourceTree = "<group>";
};
A96F27F01B21B9A800DA0A66 /* User */ = {
isa = PBXGroup;
children = (
A96F27F11B21C5AC00DA0A66 /* PraiseUserListTableViewCell.h */,
A96F27F21B21C5AC00DA0A66 /* PraiseUserListTableViewCell.m */,
A96F27F31B21C5AC00DA0A66 /* PraiseUserListTableViewCell.xib */,
);
path = User;
sourceTree = "<group>";
};
A9754A0D1ADC080E0018BAAD /* AudioPlayer */ = {
isa = PBXGroup;
children = (
@@ -867,6 +897,7 @@
A97C54B71AC8F0370038818A /* ViewControllers */ = {
isa = PBXGroup;
children = (
A96F27EF1B21B98900DA0A66 /* User */,
A98D65971AD37BDF008668EE /* Message */,
A9617A501ACC274C0024AE4A /* My */,
A97559AE1ACBC615004ADA42 /* Note */,
@@ -893,6 +924,7 @@
A97C54B91AC8F0370038818A /* Views */ = {
isa = PBXGroup;
children = (
A96F27F01B21B9A800DA0A66 /* User */,
A9CF21231B1C4EA2007490EF /* Common */,
A98D65991AD37EFD008668EE /* Message */,
A97559C01ACBEE71004ADA42 /* Note */,
@@ -1411,6 +1443,7 @@
A9CF211C1B1C36D0007490EF /* mainCellCommentClickN@2x.png in Resources */,
A9617A591ACC2EBC0024AE4A /* mine-setting-icon@2x.png in Resources */,
A968627C1ACCF3D200DDAA6B /* cellmorebtnnormalN@2x.png in Resources */,
A96F27FA1B21C5C800DA0A66 /* PraiseUserListViewController.xib in Resources */,
A93442041ACA981D00A6B233 /* Default@2x.png in Resources */,
A9B6DFE11B202E7D0003C1BC /* comment_support_fake@2x.png in Resources */,
A97DBE401ACAE29E00705682 /* Icon@2x.png in Resources */,
@@ -1436,6 +1469,7 @@
A950AB411AEC8B5E00D0F6DD /* closeButtonClick@2x.png in Resources */,
A97C55031AC933AD0038818A /* UMShareEditViewController.xib in Resources */,
A97DBE4E1ACAED4900705682 /* camera-close-select@2x.png in Resources */,
A96F27F51B21C5AC00DA0A66 /* PraiseUserListTableViewCell.xib in Resources */,
A97559A91ACB9DE4004ADA42 /* navigationButtonPublishClick@2x.png in Resources */,
A93441E21ACA89AA00A6B233 /* Profile_filter_voiceIconClick@2x.png in Resources */,
A97559A81ACB9DE4004ADA42 /* navigationButtonPublish@2x.png in Resources */,
@@ -1570,6 +1604,7 @@
A9754A261ADC199B0018BAAD /* MyMessageViewController.m in Sources */,
A9617A4F1ACC0D0F0024AE4A /* NoteViewModel.m in Sources */,
A96862461ACCF0B400DDAA6B /* MWPhoto.m in Sources */,
A96F27F41B21C5AC00DA0A66 /* PraiseUserListTableViewCell.m in Sources */,
A968624A1ACCF0B400DDAA6B /* MWZoomingScrollView.m in Sources */,
A97C54CF1AC8F10F0038818A /* NSString+HXAddtions.m in Sources */,
A96862501ACCF12300DDAA6B /* DACircularProgressView.m in Sources */,
@@ -1586,6 +1621,7 @@
A96862741ACCF13300DDAA6B /* PSTCollectionViewItemKey.m in Sources */,
A96862451ACCF0B400DDAA6B /* MWGridViewController.m in Sources */,
A97C54D01AC8F10F0038818A /* PropertyEntity.m in Sources */,
A96F27F91B21C5C800DA0A66 /* PraiseUserListViewController.m in Sources */,
A93441DE1ACA311700A6B233 /* Ash_UIUtil.m in Sources */,
A968624C1ACCF0B400DDAA6B /* README.md in Sources */,
A9754A1E1ADC080E0018BAAD /* CoreFoundationDataSource.m in Sources */,
@@ -1701,7 +1701,7 @@
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Main/NoteViewController.m"
@@ -1717,7 +1717,7 @@
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Main/NoteViewController.m"
@@ -1730,14 +1730,14 @@
landmarkType = "5">
<Locations>
<Location
shouldBeEnabled = "Yes"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "-[NoteViewController imagePickerControllerDidCancel:]"
moduleName = "Ash_AWord"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/xmfish/Documents/Ash_Soft/Ash_AWord/Ash_AWord/ViewControllers/Main/NoteViewController.m"
timestampString = "455188451.593269"
timestampString = "455341060.925982"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "274"
@@ -1745,14 +1745,14 @@
offsetFromSymbolStart = "51">
</Location>
<Location
shouldBeEnabled = "Yes"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__53-[NoteViewController imagePickerControllerDidCancel:]_block_invoke"
moduleName = "Ash_AWord"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/xmfish/Documents/Ash_Soft/Ash_AWord/Ash_AWord/ViewControllers/Main/NoteViewController.m"
timestampString = "455188451.59343"
timestampString = "455341060.92616"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "274"
@@ -1961,11 +1961,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Views/Common/CommentTextView.m"
timestampString = "455170038.377618"
timestampString = "455196891.607978"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "145"
endingLineNumber = "145"
startingLineNumber = "148"
endingLineNumber = "148"
landmarkName = "-dealloc"
landmarkType = "5">
</BreakpointContent>
@@ -1973,111 +1973,15 @@
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Views/Common/CommentTextView.m"
timestampString = "455170038.377618"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "121"
endingLineNumber = "121"
landmarkName = "-comment"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Views/Common/CommentTextView.m"
timestampString = "455170038.377618"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "119"
endingLineNumber = "119"
landmarkName = "-comment"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Views/Common/CommentTextView.m"
timestampString = "455170038.377618"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "117"
endingLineNumber = "117"
landmarkName = "-comment"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "455171075.546413"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "91"
endingLineNumber = "91"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "455171076.43425"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "94"
endingLineNumber = "94"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "455171077.658188"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "93"
endingLineNumber = "93"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Views/Common/CommentTableViewCell.m"
timestampString = "455176596.969698"
timestampString = "455197912.272996"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "31"
endingLineNumber = "31"
startingLineNumber = "43"
endingLineNumber = "43"
landmarkName = "-setCommentInfoViewModel:"
landmarkType = "5">
</BreakpointContent>
@@ -2133,7 +2037,7 @@
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Vender/MWPhotoBrowser/MWPhotoBrowser/Classes/MWZoomingScrollView.m"
@@ -2146,22 +2050,6 @@
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Tool/UIImageView+Reloading.m"
timestampString = "455186943.797918"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "68"
endingLineNumber = "68"
landmarkName = "-sy_progressView:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
@@ -2213,7 +2101,7 @@
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Tool/UIImageView+Reloading.m"
@@ -2226,5 +2114,37 @@
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Views/Common/CommentTableViewCell.m"
timestampString = "455197912.272996"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "54"
endingLineNumber = "54"
landmarkName = "+getHeightWithCommentInfoViewModel:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Vender/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingImageView.m"
timestampString = "455342949.674074"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "58"
endingLineNumber = "58"
landmarkName = "-touchesEnded:withEvent:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>
@@ -52,11 +52,12 @@
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[NSObject cancelPreviousPerformRequestsWithTarget:self];
UITouch *touch = [touches anyObject];
NSUInteger tapCount = touch.tapCount;
switch (tapCount) {
case 1:
[self handleSingleTap:touch];
[self performSelector:@selector(handleSingleTap:) withObject:touch afterDelay:0.3];
break;
case 2:
[self handleDoubleTap:touch];
@@ -21,6 +21,7 @@
CommentGoodListCellTableViewCell* _commentGoodListCellTableViewCell;
NSInteger _page;
NSMutableArray* _commentInfoArr;
BOOL _isFirstLoad;
}
@end
@@ -30,6 +31,8 @@
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
_page = 1;
_isFirstLoad = YES;
_commentInfoArr = [[NSMutableArray alloc] init];
[self customViewDidLoad];
self.navigationItem.title = @"评论";
@@ -68,6 +71,12 @@
_commentTextView = [Ash_UIUtil instanceXibView:@"CommentTextView"];
_commentTextView.frame = self.view.frame;
__weak id weakSelf = self;
[_commentTextView setComentComplete:^(){
_isFirstLoad = YES;
[weakSelf headerBeginRefreshing];
}];
[self.view addSubview:_commentTextView];
_commentTextView.recordId = _text_image.messageId;
[_commentTextView setHidden:YES];
@@ -75,9 +84,7 @@
[self loadData];
[self requirePraiseUser];
CGPoint point = self.tableView.contentOffset;
point.y = height;
[self.tableView setContentOffset:point];
}
@@ -132,7 +139,23 @@
{
[MBProgressHUD errorHudWithView:self.view label:[viewModel errMessage] hidesAfter:1.0];
}
[self.tableView reloadData];
if (_isFirstLoad) {
CGPoint point = self.tableView.contentOffset;
// //计算内容加上点赞列表cell高于显示多少,移动到能看到点赞列表。
// point.y = _headView.frame.size.height+80-self.tableView.frame.size.height;
//
// if (_commentInfoArr.count > 0) {
// point.y += [CommentTableViewCell getHeightWithCommentInfoViewModel:[_commentInfoArr objectAtIndex:0]];
// }
// [self.tableView setContentOffset:point];
// [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES ];
point.y = _headView.frame.size.height;
[self.tableView setContentOffset:point animated:YES];
_isFirstLoad = NO;
}
} failedBlock:^(NSError *error) {
@@ -171,7 +194,7 @@
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString* cellIdentifier = [NSString stringWithFormat:@"cellIdentifier%ld",indexPath.section];
NSString* cellIdentifier = [NSString stringWithFormat:@"cellIdentifier%ld",(long)indexPath.section];
CommentTableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
UINib* nib = nil;
@@ -181,6 +204,11 @@
}
CommentInfoViewModel* commentInfoViewModel = [_commentInfoArr objectAtIndex:indexPath.row];
if ([commentInfoViewModel.ownerId isEqualToString:_text_image.ownerId] ) {
[cell setIsAuthor:YES];
}else{
[cell setIsAuthor:NO];
}
[cell setCommentInfoViewModel:commentInfoViewModel];
return cell;
@@ -19,7 +19,7 @@
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" translatesAutoresizingMaskIntoConstraints="NO" id="eGy-0s-zXs">
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="grouped" separatorStyle="default" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" translatesAutoresizingMaskIntoConstraints="NO" id="eGy-0s-zXs">
<rect key="frame" x="0.0" y="0.0" width="320" height="524"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</tableView>
@@ -0,0 +1,16 @@
//
// PraiseUserListViewController.h
// Ash_AWord
//
// Created by xmfish on 15/6/5.
// Copyright (c) 2015年 ash. All rights reserved.
//
#import "BaseRefreshViewController.h"
@interface PraiseUserListViewController : BaseRefreshViewController
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@property(assign, nonatomic)NSInteger recordId;
@property(strong, nonatomic)NSArray* firstPraiseUserArr;
@end
@@ -0,0 +1,152 @@
//
// PraiseUserListViewController.m
// Ash_AWord
//
// Created by xmfish on 15/6/5.
// Copyright (c) 2015年 ash. All rights reserved.
//
#import "PraiseUserListViewController.h"
#import "PraiseUserListTableViewCell.h"
#import "UserViewModel.h"
@interface PraiseUserListViewController ()
{
NSInteger _page;
NSMutableArray* _dataArr;
}
@end
@implementation PraiseUserListViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.navigationItem.title = @"最近点赞的用户";
self.tableView.delegate = self;
self.tableView.dataSource = self;
_page = 1;
_dataArr = [[NSMutableArray alloc] init];
if (_firstPraiseUserArr.count > 0) {
[_dataArr addObjectsFromArray:_firstPraiseUserArr];
if (_dataArr.count >= DefaultPageSize) {
[self.tableView addGifFooterWithRefreshingTarget:self refreshingAction:@selector(footerRereshing)];
}
}else
{
[self headerBeginRefreshing];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark MJRefreshDelegate
-(void)headerRereshing
{
_page=1;
[self loadData];
}
-(void)footerRereshing
{
[self loadData];
}
-(void)loadData
{
PropertyEntity* pro = [UserViewModel requireLoadPraiseUserWithRecordId:_recordId withPage:1 withPage_size:DefaultPageSize];
[RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) {
if ([viewModel success]) {
UserViewModel* userViewModel = (UserViewModel*)viewModel;
if (_page <= 1) {
[_dataArr removeAllObjects];
}
if (userViewModel.userInfoArr) {
[_dataArr addObjectsFromArray:userViewModel.userInfoArr];
}
[self footerEndRefreshing];
[self headerEndRefreshing];
if (userViewModel.userInfoArr.count<DefaultPageSize) {
[self.tableView removeFooter];
}else{
[self.tableView addGifFooterWithRefreshingTarget:self refreshingAction:@selector(footerRereshing)];
}
_page++;
}else{
[MBProgressHUD errorHudWithView:self.view label:[viewModel errMessage] hidesAfter:1.0];
}
[self.tableView reloadData];
} failedBlock:^(NSError *error) {
[MBProgressHUD errorHudWithView:self.view label:kNetworkErrorTips hidesAfter:1.0];
[self footerEndRefreshing];
[self headerEndRefreshing];
}];
}
#pragma mark UITableViewDelegate
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return _dataArr.count;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 44.0;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 0.01;
}
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 0.01;
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString* cellIdentifier = @"cellIdentifier";
PraiseUserListTableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
UINib* nib = nil;
nib = [UINib nibWithNibName:@"PraiseUserListTableViewCell" bundle:nil];
[tableView registerNib:nib forCellReuseIdentifier:cellIdentifier];
cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
}
UserInfoViewModel* userInfoViewModel = [_dataArr objectAtIndex:indexPath.row];
[cell setUserInfoViewModel:userInfoViewModel];
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PraiseUserListViewController">
<connections>
<outlet property="tableView" destination="0CV-ZZ-l8L" id="LnT-0b-Idb"/>
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" translatesAutoresizingMaskIntoConstraints="NO" id="0CV-ZZ-l8L">
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
<color key="backgroundColor" red="0.93725490196078431" green="0.93725490196078431" blue="0.95686274509803926" alpha="1" colorSpace="calibratedRGB"/>
</tableView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="0CV-ZZ-l8L" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="aHX-RS-b1u"/>
<constraint firstItem="0CV-ZZ-l8L" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="eCE-wT-kfd"/>
<constraint firstAttribute="bottom" secondItem="0CV-ZZ-l8L" secondAttribute="bottom" id="eCf-q9-ZZc"/>
<constraint firstAttribute="trailing" secondItem="0CV-ZZ-l8L" secondAttribute="trailing" id="gs1-Gt-5TO"/>
</constraints>
<simulatedScreenMetrics key="simulatedDestinationMetrics"/>
</view>
</objects>
</document>
@@ -13,8 +13,10 @@
@property (weak, nonatomic) IBOutlet UIImageView *avatarImageView;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
@property (weak, nonatomic) IBOutlet UILabel *floorLabel;
@property (weak, nonatomic) IBOutlet UITextView *contentTextView;
-(void)setCommentInfoViewModel:(CommentInfoViewModel*)commentInfoViewModel;
-(void)setIsAuthor:(BOOL)isAuthor;
+(CGFloat)getHeightWithCommentInfoViewModel:(CommentInfoViewModel*)commentInfoViewModel;
@end
+13 -1
View File
@@ -16,6 +16,10 @@
// Initialization code
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 18.0;
_contentTextView.scrollEnabled = NO;
_floorLabel.layer.masksToBounds = YES;
_floorLabel.layer.cornerRadius = 8.0;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
@@ -24,6 +28,14 @@
// Configure the view for the selected state
}
-(void)setIsAuthor:(BOOL)isAuthor
{
if (isAuthor) {
_floorLabel.hidden = NO;
}else{
_floorLabel.hidden = YES;
}
}
-(void)setCommentInfoViewModel:(CommentInfoViewModel *)commentInfoViewModel
{
[_avatarImageView sd_setImageWithURL:[NSURL URLWithString:commentInfoViewModel.ownerFigureurl] placeholderImage:DefaultUserIcon];
@@ -34,7 +46,7 @@
+(CGFloat)getHeightWithCommentInfoViewModel:(CommentInfoViewModel *)commentInfoViewModel
{
UIFont *font = [UIFont appFontOfSize:13.0];
CGSize size = CGSizeMake(kScreenWidth - 50,MAXFLOAT);
CGSize size = CGSizeMake(kScreenWidth - 60,MAXFLOAT);
CGRect labelRect = [commentInfoViewModel.content boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil];
+24 -10
View File
@@ -8,8 +8,8 @@
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="146" id="KGk-i7-Jjw" customClass="CommentTableViewCell">
<rect key="frame" x="0.0" y="0.0" width="320" height="146"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="99" id="KGk-i7-Jjw" customClass="CommentTableViewCell">
<rect key="frame" x="0.0" y="0.0" width="320" height="99"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
@@ -23,36 +23,47 @@
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HNF-FY-BJ4">
<rect key="frame" x="52" y="8" width="238" height="16"/>
<rect key="frame" x="52" y="8" width="26" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aio-xk-LSD">
<rect key="frame" x="52" y="25" width="0.0" height="0.0"/>
<rect key="frame" x="52" y="27" width="0.0" height="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="10"/>
<color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" editable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GI8-56-N0b">
<rect key="frame" x="46" y="27" width="264" height="108"/>
<rect key="frame" x="46" y="27" width="264" height="71"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
</textView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="楼主 " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZiP-RG-jgh">
<rect key="frame" x="83" y="8" width="34" height="16"/>
<color key="backgroundColor" red="0.3803921569" green="0.74901960779999999" blue="0.66274509800000003" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="GI8-56-N0b" secondAttribute="trailing" constant="10" id="BL7-jI-GY8"/>
<constraint firstAttribute="trailing" secondItem="GI8-56-N0b" secondAttribute="trailing" constant="10" id="BsC-Ck-gzg"/>
<constraint firstItem="ZiP-RG-jgh" firstAttribute="leading" secondItem="HNF-FY-BJ4" secondAttribute="trailing" constant="5" id="Ms5-W3-KbQ"/>
<constraint firstItem="ZiP-RG-jgh" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="8" id="QDZ-IA-030"/>
<constraint firstItem="GI8-56-N0b" firstAttribute="leading" secondItem="qab-Nl-rao" secondAttribute="trailing" constant="2" id="QWt-hz-dwp"/>
<constraint firstItem="GI8-56-N0b" firstAttribute="bottom" secondItem="H2p-sc-9uM" secondAttribute="bottomMargin" id="Ug2-cK-68b"/>
<constraint firstItem="HNF-FY-BJ4" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="topMargin" id="Vtb-ph-9tQ"/>
<constraint firstItem="GI8-56-N0b" firstAttribute="top" secondItem="aio-xk-LSD" secondAttribute="bottom" constant="2" id="XU6-kE-kV9"/>
<constraint firstItem="GI8-56-N0b" firstAttribute="top" secondItem="aio-xk-LSD" secondAttribute="bottom" id="XU6-kE-kV9"/>
<constraint firstItem="qab-Nl-rao" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leadingMargin" id="Xim-WS-hus"/>
<constraint firstAttribute="bottomMargin" secondItem="GI8-56-N0b" secondAttribute="bottom" constant="10" id="ZZh-WV-fAM"/>
<constraint firstAttribute="trailingMargin" secondItem="HNF-FY-BJ4" secondAttribute="trailing" constant="22" id="ZkL-SX-vgZ"/>
<constraint firstAttribute="trailingMargin" relation="greaterThanOrEqual" secondItem="HNF-FY-BJ4" secondAttribute="trailing" constant="30" id="ZkL-SX-vgZ"/>
<constraint firstAttribute="trailing" secondItem="ZiP-RG-jgh" secondAttribute="trailing" constant="10" id="cGm-cZ-Vir"/>
<constraint firstItem="ZiP-RG-jgh" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="8" id="cwd-an-AyP"/>
<constraint firstItem="GI8-56-N0b" firstAttribute="top" secondItem="HNF-FY-BJ4" secondAttribute="bottom" constant="15" id="fiw-HX-QRQ"/>
<constraint firstItem="aio-xk-LSD" firstAttribute="top" secondItem="HNF-FY-BJ4" secondAttribute="bottom" constant="1" id="gYF-ag-8gr"/>
<constraint firstAttribute="bottom" secondItem="GI8-56-N0b" secondAttribute="bottom" constant="10" id="gmi-Ab-HgI"/>
<constraint firstItem="aio-xk-LSD" firstAttribute="top" secondItem="HNF-FY-BJ4" secondAttribute="bottom" constant="3" id="gYF-ag-8gr"/>
<constraint firstAttribute="bottom" secondItem="GI8-56-N0b" secondAttribute="bottom" id="gmi-Ab-HgI"/>
<constraint firstAttribute="trailingMargin" secondItem="GI8-56-N0b" secondAttribute="trailing" constant="-8" id="kmA-9A-Nts"/>
<constraint firstItem="aio-xk-LSD" firstAttribute="leading" secondItem="qab-Nl-rao" secondAttribute="trailing" constant="8" id="oIw-sV-8qp"/>
<constraint firstItem="HNF-FY-BJ4" firstAttribute="leading" secondItem="qab-Nl-rao" secondAttribute="trailing" constant="8" id="vHk-Qa-UVw"/>
@@ -65,16 +76,19 @@
<exclude reference="ZZh-WV-fAM"/>
<exclude reference="fiw-HX-QRQ"/>
<exclude reference="kmA-9A-Nts"/>
<exclude reference="QDZ-IA-030"/>
<exclude reference="cGm-cZ-Vir"/>
</mask>
</variation>
</tableViewCellContentView>
<connections>
<outlet property="avatarImageView" destination="qab-Nl-rao" id="wUN-5h-CDf"/>
<outlet property="contentTextView" destination="GI8-56-N0b" id="gTA-ST-k0w"/>
<outlet property="floorLabel" destination="ZiP-RG-jgh" id="i5k-Oq-tHp"/>
<outlet property="nameLabel" destination="HNF-FY-BJ4" id="gqu-ya-Fzi"/>
<outlet property="timeLabel" destination="aio-xk-LSD" id="t5S-sR-9vq"/>
</connections>
<point key="canvasLocation" x="208" y="247"/>
<point key="canvasLocation" x="208" y="223.5"/>
</tableViewCell>
</objects>
<resources>
+3
View File
@@ -8,10 +8,13 @@
#import <UIKit/UIKit.h>
typedef void (^CommentComplete)(void);
@interface CommentTextView : UIView
@property (nonatomic, assign) NSInteger recordId;
@property (nonatomic, strong) CommentComplete comentComplete;
@property (weak, nonatomic) IBOutlet UITextView *contentTextView;
@property (weak, nonatomic) IBOutlet UILabel *tipLabel;
- (IBAction)cancelBtnClick:(id)sender;
+4 -1
View File
@@ -120,8 +120,11 @@
if ([viewModel success]) {
[MBProgressHUD checkHudWithView:nil label:@"评论成功" hidesAfter:1.0];
_tipLabel.text = @"";
_contentTextView.text = @"";
[self hide];
if (_comentComplete) {
_comentComplete();
}
}else{
[MBProgressHUD checkHudWithView:nil label:[viewModel errMessage] hidesAfter:1.0];
@@ -0,0 +1,17 @@
//
// PraiseUserListTableViewCell.h
// Ash_AWord
//
// Created by xmfish on 15/6/5.
// Copyright (c) 2015年 ash. All rights reserved.
//
#import <UIKit/UIKit.h>
@class UserInfoViewModel;
@interface PraiseUserListTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIImageView *avatarImageView;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
-(void)setUserInfoViewModel:(UserInfoViewModel*)userInfoViewModel;
@end
@@ -0,0 +1,28 @@
//
// PraiseUserListTableViewCell.m
// Ash_AWord
//
// Created by xmfish on 15/6/5.
// Copyright (c) 2015年 ash. All rights reserved.
//
#import "PraiseUserListTableViewCell.h"
#import "UserViewModel.h"
@implementation PraiseUserListTableViewCell
- (void)awakeFromNib {
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
-(void)setUserInfoViewModel:(UserInfoViewModel *)userInfoViewModel
{
[_avatarImageView sd_setImageWithURL:[NSURL URLWithString:userInfoViewModel.figureurl] placeholderImage:DefaultUserIcon];
_nameLabel.text = userInfoViewModel.name;
}
@end
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="KGk-i7-Jjw" customClass="PraiseUserListTableViewCell">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defaultUserIcon.png" translatesAutoresizingMaskIntoConstraints="NO" id="cON-Kd-2Dr">
<rect key="frame" x="8" y="4" width="36" height="36"/>
<constraints>
<constraint firstAttribute="height" constant="36" id="Eft-r0-1oa"/>
<constraint firstAttribute="width" constant="36" id="ygN-uW-5oP"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NKY-zq-2li">
<rect key="frame" x="52" y="22" width="0.0" height="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstItem="NKY-zq-2li" firstAttribute="leading" secondItem="cON-Kd-2Dr" secondAttribute="trailing" constant="8" id="4Bm-GI-p5Y"/>
<constraint firstAttribute="centerY" secondItem="NKY-zq-2li" secondAttribute="centerY" id="GCu-MQ-bej"/>
<constraint firstItem="cON-Kd-2Dr" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="8" id="cRG-R7-sL5"/>
<constraint firstAttribute="centerY" secondItem="cON-Kd-2Dr" secondAttribute="centerY" id="xyp-rs-6OO"/>
</constraints>
</tableViewCellContentView>
<connections>
<outlet property="avatarImageView" destination="cON-Kd-2Dr" id="PAq-mV-4Ag"/>
<outlet property="nameLabel" destination="NKY-zq-2li" id="4lS-4A-ETZ"/>
</connections>
</tableViewCell>
</objects>
<resources>
<image name="defaultUserIcon.png" width="50" height="50"/>
</resources>
</document>