From 0a723b51e75bea0130111216a8c4c833b4e15baa Mon Sep 17 00:00:00 2001 From: Sun Shijie Date: Sat, 22 Apr 2017 17:47:47 +0800 Subject: [PATCH] update SJStaticTableViewComponent under pod --- SJStaticTableView.podspec | 2 +- ...bleViewCell+AccessoryDisclosureIndicator.h | 2 + ...bleViewCell+AccessoryDisclosureIndicator.m | 51 +++++++++++- .../SJStaticTableViewCell.h | 1 + .../SJStaticTableViewCell.m | 76 ++++++------------ .../SJStaticTableViewController.h | 4 + .../SJStaticTableViewController.m | 3 + .../SJStaticTableViewDataSource.m | 7 +- .../SJStaticTableviewSectionViewModel.h | 2 +- .../SJStaticTableviewSectionViewModel.m | 2 +- .../UserInterfaceState.xcuserstate | Bin 36199 -> 32699 bytes 11 files changed, 93 insertions(+), 57 deletions(-) diff --git a/SJStaticTableView.podspec b/SJStaticTableView.podspec index ffd1f3d..98f3326 100644 --- a/SJStaticTableView.podspec +++ b/SJStaticTableView.podspec @@ -3,7 +3,7 @@ Pod::Spec.new do |s| s.name = "SJStaticTableView" - s.version = "1.0.3" + s.version = "1.1.1" s.summary = "SJStaticTableView can be used to establish ViewControllers which contain static tableview such as setting page and userinfo page." s.homepage = "https://github.com/knightsj/SJStaticTableView" s.license = "MIT" diff --git a/SJStaticTableViewComponent/SJStaticTableViewCell+AccessoryDisclosureIndicator.h b/SJStaticTableViewComponent/SJStaticTableViewCell+AccessoryDisclosureIndicator.h index 737045f..b723892 100644 --- a/SJStaticTableViewComponent/SJStaticTableViewCell+AccessoryDisclosureIndicator.h +++ b/SJStaticTableViewComponent/SJStaticTableViewCell+AccessoryDisclosureIndicator.h @@ -9,5 +9,7 @@ #import "SJStaticTableViewCell.h" @interface SJStaticTableViewCell (AccessoryDisclosureIndicator) + - (void)configureAccessoryDisclosureIndicatorCellWithViewModel:(SJStaticTableviewCellViewModel *)viewModel; + @end diff --git a/SJStaticTableViewComponent/SJStaticTableViewCell+AccessoryDisclosureIndicator.m b/SJStaticTableViewComponent/SJStaticTableViewCell+AccessoryDisclosureIndicator.m index 3dfff8e..f6250e6 100644 --- a/SJStaticTableViewComponent/SJStaticTableViewCell+AccessoryDisclosureIndicator.m +++ b/SJStaticTableViewComponent/SJStaticTableViewCell+AccessoryDisclosureIndicator.m @@ -9,9 +9,10 @@ #import "SJStaticTableViewCell+AccessoryDisclosureIndicator.h" @implementation SJStaticTableViewCell (AccessoryDisclosureIndicator) + - (void)configureAccessoryDisclosureIndicatorCellWithViewModel:(SJStaticTableviewCellViewModel *)viewModel { - + //左侧控件的配置 [self layoutLeftPartSubViewsWithViewModel:viewModel]; //右侧存在箭头 @@ -20,12 +21,60 @@ - (void)configureAccessoryDisclosureIndicatorCellWithViewModel:(SJStaticTablevie //右侧存在箭头+文字 if ( (viewModel.indicatorLeftTitle) && (viewModel.indicatorLeftLabelSize.width != 0)) { [self.contentView addSubview:self.indicatorLeftLabel]; + [self configureIndicatorLeftLabel]; } //右侧存在箭头+图片 if ((self.viewModel.indicatorLeftImage) && (viewModel.indicatorLeftImageSize.height != 0)){ [self.contentView addSubview:self.indicatorLeftImageView]; + [self configureIndicatorLeftImage]; } +} + +//将右侧label的配置从懒加载里抽出来 +- (void)configureIndicatorLeftLabel +{ + + self.indicatorLeftLabel.font = self.viewModel.indicatorLeftLabelTextFont; + self.indicatorLeftLabel.textColor = self.viewModel.indicatorLeftLabelTextColor; + self.indicatorLeftLabel.text = self.viewModel.indicatorLeftTitle; + if (!self.viewModel.hasIndicatorImageAndLabel) { + //只存在右侧Label + self.indicatorLeftLabel.frame = CGRectMake(self.indicatorArrow.frame.origin.x - SJLeftGap - self.viewModel.indicatorLeftLabelSize.width , (self.viewModel.cellHeight - self.viewModel.indicatorLeftLabelSize.height)/2, self.viewModel.indicatorLeftLabelSize.width, self.viewModel.indicatorLeftLabelSize.height); + }else{ + //右侧Label和image同时存在 + if (self.viewModel.isImageFirst) { + + self.indicatorLeftLabel.frame = CGRectMake(SJScreenWidth - SJLeftGap - self.indicatorArrow.bounds.size.width - self.viewModel.indicatorLeftImageAndLabelGap - self.viewModel.indicatorLeftImageSize.width - SJLeftGap - self.viewModel.indicatorLeftLabelSize.width, (self.viewModel.cellHeight - self.viewModel.indicatorLeftLabelSize.height)/2, self.viewModel.indicatorLeftLabelSize.width, self.viewModel.indicatorLeftLabelSize.height); + + }else{ + + self.indicatorLeftLabel.frame = CGRectMake(SJScreenWidth - SJLeftGap - self.indicatorArrow.bounds.size.width - SJLeftGap - self.viewModel.indicatorLeftLabelSize.width, (self.viewModel.cellHeight - self.viewModel.indicatorLeftLabelSize.height)/2, self.viewModel.indicatorLeftLabelSize.width, self.viewModel.indicatorLeftLabelSize.height); + } + } } + +//将右侧image的配置从懒加载里抽出来 +- (void)configureIndicatorLeftImage +{ + self.indicatorLeftImageView.image = self.viewModel.indicatorLeftImage; + + if (!self.viewModel.hasIndicatorImageAndLabel) { + //只存在右侧image + self.indicatorLeftImageView.frame = CGRectMake(self.indicatorArrow.frame.origin.x - SJLeftGap - self.viewModel.indicatorLeftImageSize.width, (self.viewModel.cellHeight - self.viewModel.indicatorLeftImageSize.height)/2, self.viewModel.indicatorLeftImageSize.width , self.viewModel.indicatorLeftImageSize.height); + }else{ + //右侧Label和image同时存在 + if (self.viewModel.isImageFirst) { + + self.indicatorLeftImageView.frame = CGRectMake(SJScreenWidth - SJLeftGap - self.indicatorArrow.bounds.size.width - SJLeftGap - self.viewModel.indicatorLeftImageSize.width, (self.viewModel.cellHeight - self.viewModel.indicatorLeftImageSize.height)/2, self.viewModel.indicatorLeftImageSize.width, self.viewModel.indicatorLeftImageSize.height); + + }else{ + + self.indicatorLeftImageView.frame = CGRectMake(SJScreenWidth - SJLeftGap - self.indicatorArrow.bounds.size.width - self.viewModel.indicatorLeftImageAndLabelGap - self.viewModel.indicatorLeftLabelSize.width - SJLeftGap - self.viewModel.indicatorLeftImageSize.width, (self.viewModel.cellHeight - self.viewModel.indicatorLeftImageSize.height)/2, self.viewModel.indicatorLeftImageSize.width,self.viewModel.indicatorLeftImageSize.height); + } + + } +} + @end diff --git a/SJStaticTableViewComponent/SJStaticTableViewCell.h b/SJStaticTableViewComponent/SJStaticTableViewCell.h index 8af7f20..59c995d 100644 --- a/SJStaticTableViewComponent/SJStaticTableViewCell.h +++ b/SJStaticTableViewComponent/SJStaticTableViewCell.h @@ -41,4 +41,5 @@ //统一的,布局cell左侧部分的内容(标题 / 图片 + 标题),所有系统风格的cell都要调用这个方法 - (void)layoutLeftPartSubViewsWithViewModel:(SJStaticTableviewCellViewModel *)viewModel; + @end diff --git a/SJStaticTableViewComponent/SJStaticTableViewCell.m b/SJStaticTableViewComponent/SJStaticTableViewCell.m index f1254b1..5438cae 100644 --- a/SJStaticTableViewComponent/SJStaticTableViewCell.m +++ b/SJStaticTableViewComponent/SJStaticTableViewCell.m @@ -17,16 +17,37 @@ - (void)layoutLeftPartSubViewsWithViewModel:(SJStaticTableviewCellViewModel *)vi //存在最左边的图片 if (self.viewModel.leftImage) { + [self.contentView addSubview:self.leftImageView]; + + self.leftImageView.image = self.viewModel.leftImage; + self.leftImageView.frame = CGRectMake(SJLeftGap, (self.viewModel.cellHeight - self.viewModel.leftImageSize.height)/2, self.viewModel.leftImageSize.width , self.viewModel.leftImageSize.height); } + //存在标题文字 if (self.viewModel.leftTitle.length) { + [self.contentView addSubview:self.leftTitleLabel]; + + self.leftTitleLabel.font = self.viewModel.leftLabelTextFont; + self.leftTitleLabel.textColor = self.viewModel.leftLabelTextColor; + self.leftTitleLabel.text = self.viewModel.leftTitle; + + CGFloat x = 0; + if (_leftImageView) { + x = CGRectGetMaxX(self.leftImageView.frame) + self.viewModel.leftImageAndLabelGap; + }else{ + x = SJLeftGap; + } + + self.leftTitleLabel.frame = CGRectMake( x, (self.viewModel.cellHeight - self.viewModel.leftTitleLabelSize.height)/2, self.viewModel.leftTitleLabelSize.width, self.viewModel.leftTitleLabelSize.height); } + } + #pragma mark- switch block - (void)switchTouched:(UISwitch *)indicatorSwitch { @@ -41,8 +62,7 @@ - (void)switchTouched:(UISwitch *)indicatorSwitch - (UIImageView *)leftImageView { if (!_leftImageView) { - _leftImageView = [[UIImageView alloc] initWithImage:_viewModel.leftImage]; - _leftImageView.frame = CGRectMake(SJLeftGap, (_viewModel.cellHeight - _viewModel.leftImageSize.height)/2, _viewModel.leftImageSize.width , _viewModel.leftImageSize.height); + _leftImageView = [[UIImageView alloc] init]; } return _leftImageView; } @@ -51,16 +71,6 @@ - (UILabel *)leftTitleLabel { if (!_leftTitleLabel) { _leftTitleLabel= [[UILabel alloc] init]; - _leftTitleLabel.font = _viewModel.leftLabelTextFont; - _leftTitleLabel.textColor = _viewModel.leftLabelTextColor; - _leftTitleLabel.text = _viewModel.leftTitle; - CGFloat x = 0; - if (_leftImageView) { - x = CGRectGetMaxX(_leftImageView.frame) + _viewModel.leftImageAndLabelGap; - }else{ - x = SJLeftGap; - } - _leftTitleLabel.frame = CGRectMake( x, (_viewModel.cellHeight - _viewModel.leftTitleLabelSize.height)/2, _viewModel.leftTitleLabelSize.width, _viewModel.leftTitleLabelSize.height); } return _leftTitleLabel; } @@ -82,33 +92,14 @@ - (UIImageView *)indicatorArrow if (!_indicatorArrow) { _indicatorArrow = [[UIImageView alloc] initWithImage:[UIImage imageNamed:SJIndicatorArrow]]; _indicatorArrow.frame = CGRectMake(SJScreenWidth - SJLeftGap - _indicatorArrow.bounds.size.width, (_viewModel.cellHeight - _indicatorArrow.bounds.size.height)/2, _indicatorArrow.bounds.size.width, _indicatorArrow.bounds.size.height); - } - + } return _indicatorArrow; } - (UILabel *)indicatorLeftLabel { if (!_indicatorLeftLabel) { - _indicatorLeftLabel= [[UILabel alloc] init]; - _indicatorLeftLabel.font = _viewModel.indicatorLeftLabelTextFont; - _indicatorLeftLabel.textColor = _viewModel.indicatorLeftLabelTextColor; - _indicatorLeftLabel.text = _viewModel.indicatorLeftTitle; - - if (!_viewModel.hasIndicatorImageAndLabel) { - _indicatorLeftLabel.frame = CGRectMake(_indicatorArrow.frame.origin.x - SJLeftGap - _viewModel.indicatorLeftLabelSize.width , (_viewModel.cellHeight - _viewModel.indicatorLeftLabelSize.height)/2, _viewModel.indicatorLeftLabelSize.width, _viewModel.indicatorLeftLabelSize.height); - }else{ - //同时存在 - if (_viewModel.isImageFirst) { - - _indicatorLeftLabel.frame = CGRectMake(SJScreenWidth - SJLeftGap - _indicatorArrow.bounds.size.width - _viewModel.indicatorLeftImageAndLabelGap - _viewModel.indicatorLeftImageSize.width - SJLeftGap - _viewModel.indicatorLeftLabelSize.width, (_viewModel.cellHeight - _viewModel.indicatorLeftLabelSize.height)/2, _viewModel.indicatorLeftLabelSize.width, _viewModel.indicatorLeftLabelSize.height); - - }else{ - - _indicatorLeftLabel.frame = CGRectMake(SJScreenWidth - SJLeftGap - _indicatorArrow.bounds.size.width - SJLeftGap - _viewModel.indicatorLeftLabelSize.width, (_viewModel.cellHeight - _viewModel.indicatorLeftLabelSize.height)/2, _viewModel.indicatorLeftLabelSize.width, _viewModel.indicatorLeftLabelSize.height); - } - } - + _indicatorLeftLabel= [[UILabel alloc] init]; } return _indicatorLeftLabel; } @@ -116,24 +107,7 @@ - (UILabel *)indicatorLeftLabel - (UIImageView *)indicatorLeftImageView { if (!_indicatorLeftImageView) { - _indicatorLeftImageView = [[UIImageView alloc] initWithImage:_viewModel.indicatorLeftImage]; - - if (!_viewModel.hasIndicatorImageAndLabel) { - _indicatorLeftImageView.frame = CGRectMake(_indicatorArrow.frame.origin.x - SJLeftGap - _viewModel.indicatorLeftImageSize.width, (_viewModel.cellHeight - _viewModel.indicatorLeftImageSize.height)/2, _viewModel.indicatorLeftImageSize.width , _viewModel.indicatorLeftImageSize.height); - }else{ - - if (_viewModel.isImageFirst) { - - _indicatorLeftImageView.frame = CGRectMake(SJScreenWidth - SJLeftGap - _indicatorArrow.bounds.size.width - SJLeftGap - _viewModel.indicatorLeftImageSize.width, (_viewModel.cellHeight - _viewModel.indicatorLeftImageSize.height)/2, _viewModel.indicatorLeftImageSize.width, _viewModel.indicatorLeftImageSize.height); - - }else{ - - _indicatorLeftImageView.frame = CGRectMake(SJScreenWidth - SJLeftGap - _indicatorArrow.bounds.size.width - _viewModel.indicatorLeftImageAndLabelGap - _viewModel.indicatorLeftLabelSize.width - SJLeftGap - _viewModel.indicatorLeftImageSize.width, (_viewModel.cellHeight - _viewModel.indicatorLeftImageSize.height)/2, _viewModel.indicatorLeftImageSize.width,_viewModel.indicatorLeftImageSize.height); - - } - - } - + _indicatorLeftImageView = [[UIImageView alloc] init]; } return _indicatorLeftImageView; } diff --git a/SJStaticTableViewComponent/SJStaticTableViewController.h b/SJStaticTableViewComponent/SJStaticTableViewController.h index 8dfc7ca..cdaf41a 100644 --- a/SJStaticTableViewComponent/SJStaticTableViewController.h +++ b/SJStaticTableViewComponent/SJStaticTableViewController.h @@ -10,6 +10,7 @@ #import "SJStaticTableViewHeader.h" #import "Factory.h"//假数据 + @protocol SJStaticTableViewControllerDelegate @required @@ -21,4 +22,7 @@ @property (nonatomic, strong) SJStaticTableView *tableView; @property (nonatomic, strong) SJStaticTableViewDataSource *dataSource; + +- (SJStaticTableviewCellViewModel *)retrieveCellViewModelAtIndexPath:(NSIndexPath *)indexPath; + @end diff --git a/SJStaticTableViewComponent/SJStaticTableViewController.m b/SJStaticTableViewComponent/SJStaticTableViewController.m index 18a3742..be68aeb 100644 --- a/SJStaticTableViewComponent/SJStaticTableViewController.m +++ b/SJStaticTableViewComponent/SJStaticTableViewController.m @@ -9,8 +9,11 @@ #import "SJStaticTableViewController.h" #import "SJStaticTableViewDataSource.h" +@interface SJStaticTableViewController() +@end + @implementation SJStaticTableViewController diff --git a/SJStaticTableViewComponent/SJStaticTableViewDataSource.m b/SJStaticTableViewComponent/SJStaticTableViewDataSource.m index d9859bf..1020336 100644 --- a/SJStaticTableViewComponent/SJStaticTableViewDataSource.m +++ b/SJStaticTableViewComponent/SJStaticTableViewDataSource.m @@ -20,6 +20,8 @@ @interface SJStaticTableViewDataSource() @implementation SJStaticTableViewDataSource +#pragma mark- Public API + - (instancetype)initWithViewModelsArray:(NSArray *)viewModelsArray configureBlock:(SJStaticCellConfigureBlock)block { self = [super init]; @@ -30,6 +32,7 @@ - (instancetype)initWithViewModelsArray:(NSArray *)viewModelsArray configureBloc return self; } +#pragma mark- SJStaticTableViewDataSource - (SJStaticTableviewCellViewModel *)tableView:(UITableView *)tableview cellViewModelAtIndexPath:(NSIndexPath *)indexPath { if (self.viewModelsArray.count > indexPath.section) { @@ -49,7 +52,7 @@ - (SJStaticTableviewSectionViewModel *)tableView:(UITableView *)tableView sectio return nil; } -#pragma mark - Tableview data source +#pragma mark - Tableview Datasource - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { @@ -64,7 +67,7 @@ - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - + SJStaticTableviewSectionViewModel *sectionViewModel = self.viewModelsArray[indexPath.section]; SJStaticTableviewCellViewModel *cellViewModel = sectionViewModel.cellViewModelsArray[indexPath.row]; diff --git a/SJStaticTableViewComponent/SJStaticTableviewSectionViewModel.h b/SJStaticTableViewComponent/SJStaticTableviewSectionViewModel.h index 7e0578d..4988504 100644 --- a/SJStaticTableViewComponent/SJStaticTableviewSectionViewModel.h +++ b/SJStaticTableViewComponent/SJStaticTableviewSectionViewModel.h @@ -13,7 +13,7 @@ @property (nonatomic, copy) NSString *sectionHeaderTitle; //该section的标题 @property (nonatomic, copy) NSString *sectionFooterTitle; //该section的标题 -@property (nonatomic, strong) NSArray *cellViewModelsArray; //该section的数据源 +@property (nonatomic, strong) NSMutableArray *cellViewModelsArray; //该section的数据源 @property (nonatomic, assign) CGFloat sectionHeaderHeight; //header的高度 @property (nonatomic, assign) CGFloat sectionFooterHeight; //footer的高度 diff --git a/SJStaticTableViewComponent/SJStaticTableviewSectionViewModel.m b/SJStaticTableViewComponent/SJStaticTableviewSectionViewModel.m index e4adc34..2ab4a19 100644 --- a/SJStaticTableViewComponent/SJStaticTableviewSectionViewModel.m +++ b/SJStaticTableViewComponent/SJStaticTableviewSectionViewModel.m @@ -26,7 +26,7 @@ - (instancetype)initWithCellViewModelsArray:(NSArray *)cellViewModelsArray _indicatorLeftLabelTextColor = SJIndicatorLeftTitleTextColor; _indicatorLeftImageSize = CGSizeMake(SJImgWidth, SJImgWidth); _indicatorLeftImageAndLabelGap = SJRightMiddleGap; - _cellViewModelsArray = cellViewModelsArray; + _cellViewModelsArray = [cellViewModelsArray mutableCopy]; } return self; } diff --git a/SJStaticTableViewDemo/SJStaticTableViewDemo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate b/SJStaticTableViewDemo/SJStaticTableViewDemo.xcodeproj/project.xcworkspace/xcuserdata/SunShijie.xcuserdatad/UserInterfaceState.xcuserstate index 73d1f2039114942b7fd1ce5ea0bcbdd0b5a69843..8f5f06667dda3b50c5b3821010ca5efd570e89c9 100644 GIT binary patch literal 32699 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 literal 36199 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

(cG3WuDy}J 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