【iOS】含tableView的ViewController基類的實現
上篇部落格寫了ViewController的基類的實現,這篇部落格主要寫在BaseViewController的基礎上實現一個含tableView控制元件的基類的實現,主要給包含tableView的頁面來繼承。
BaseTableViewViewController.h程式碼:
#import "BZBaseViewController.h"
#import "BZBaseTableViewCell.h"
@interface BZBaseTableViewViewController : BZBaseViewController<UITableViewDelegate,UITableViewDataSource>
@property(nonatomic,strong) UITableView * tableView;
@property(nonatomic,strong) NSArray * dataSource;
-(void)setupTableView;
@end
BaseTableViewViewController.m程式碼:
#import "BZBaseTableViewViewController.h"
@interface BZBaseTableViewViewController ()
@end
@implementation BZBaseTableViewViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(void)setupTableView{
[self.view addSubview:self.tableView];
}
#pragma mark - UITableViewDelegate & UITableViewDataSource
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 0;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 0.0;
}
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return 0.001;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 0.001;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
BZBaseTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"ID"];
if (!cell) {
cell = [[BZBaseTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ID"];
}
return cell;
}
#pragma mark - lazy
-(UITableView *)tableView{
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - self.mNavigationbarHeight) style:UITableViewStyleGrouped];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.showsVerticalScrollIndicator = NO;
_tableView.backgroundColor = [UIColor clearColor];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.estimatedRowHeight = 0;
_tableView.estimatedSectionHeaderHeight = 0;
_tableView.estimatedSectionFooterHeight = 0;
}
return _tableView;
}
@end
專案中包含tableView的ViewController都可以繼承自該類,重寫tableView的代理方法就可以實現相應的功能。
另外,tableView的實現離不開tableViewCell,所以我們也可以寫一個BaseTableViewCell,讓其他的tableViewCell來繼承。
BaseTableViewCell.h程式碼:
#import <UIKit/UIKit.h>
@interface BZBaseTableViewCell : UITableViewCell
-(void)setupUI;
@end
BaseTableViewCell.m程式碼:
#import "BZBaseTableViewCell.h"
@implementation BZBaseTableViewCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
self.selectionStyle = UITableViewCellSelectionStyleNone;
if (self) {
[self setupUI];
}
return self;
}
-(void)setupUI{
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
繼承自BaseTableViewCell的子類直接實現-(void)setupUI;方法即可實現自定義的cell介面。
相關文章
- IOS多型別Cell的tableView實現iOS多型型別View
- 如何實現iOS6的TableView分組樣式iOSView
- iOS 類似美團外賣 app 兩個 tableView 聯動效果實現iOSAPPView
- iOS (仿印物App)TableView給力動畫的簡單實現iOSAPPView動畫
- iOS tableView中的MVC、MVVMiOSViewMVCMVVM
- 類轉json的基類實現JSON
- iOS cell找對應的tableViewiOSView
- iOS開發- tableView的協議iOSView協議
- iOS 類知乎”分頁”效果的實現?iOS
- iOS專案開發實戰——Swift實現多個TableView的側滑與切換iOSSwiftView
- ios storyboard 獲取storyboard中的viewControlleriOSViewController
- iOS ViewController Dealloc監聽iOSViewController
- 做一個TableView 的iOS App的筆記(一)ViewiOSAPP筆記
- ResponderChain+Strategy+MVVM實現一個優雅的TableViewAIMVVMView
- iOS 關於viewController自定義的轉場動畫iOSViewController動畫
- iOS開發之獲取Storyboard建立的ViewControlleriOSViewController
- iOS ~ ViewController的Push,Pop和Present,Dismiss轉場動畫iOSViewController動畫
- Hibernate 泛型實現 dao 層的基類泛型
- 基於註解的 PHP 列舉類實現PHP
- 基於SWT的類XUL實現: SWT-XUIUI
- 『ios』view和tableview的截圖和圖片拼接iOSView
- Android中實現類似iOS的SwitchButton控制元件AndroidiOS控制元件
- InputStream類的實現
- iOS 0行程式碼實現 TableView 無資料時展示佔位檢視iOS行程View
- iOS面向切面的TableView-AOPTableViewiOSView
- iOS動畫系列之七:實現類似Twitter的啟動動畫iOS動畫
- 基於深度學習的時間序列分類[含程式碼]深度學習
- OC-TableView自帶多選功能實現View
- 【iOS開發】ViewController減負記錄iOSViewController
- 視訊採集:iOS平臺基於AVCaptureDevice的實現iOSAPTdev
- (iOS)KVO 的實現原理iOS
- Vue3實現元件級基類的幾種方法Vue元件
- string類的實現
- iOS - 二級連動(tableview包含 collectionview)iOSView
- iOS開發之tableView左滑刪除的兩種方法iOSView
- Map類及其主要的實現類
- DDD的實體、值物件、聚合根的基類和介面:設計與實現物件
- 線上教育系統開發中,tableview列表分割槽的實現方式View