一個關於tableView的footerView的子控制元件y 座標的 BUG
阿新 • • 發佈:2019-02-09
#import"ZJHAboutViewController.h"
#import "ZJHUserProtocolViewController.h"
#import "UIView+Extension.h"
#import "UIColor+Helpers.h"#define kWIDTH [UIScreen mainScreen].bounds.size.width
@interface ZJHAboutViewController ()<UITableViewDataSource,UITableViewDelegate>
@property (strong,nonatomic )UIView*
headerView;
@property (strong,nonatomic)UIView* footerView;
@end@implementation ZJHAboutViewController
#pragma mark - 關於產品類
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view. // nav 的左側按鈕 和 標題 UIBarButtonItem*leftItem = [[UIBarButtonItemalloc ]initWithImage:[UIImageimageNamed:@"product_button_back_nor.png"]style:UIBarButtonItemStylePlaintarget:nilaction:nil];
self.navigationItem.leftBarButtonItem= leftItem;
self.navigationItem.title=@"NavigationController";
// 建立 tableView UITableView* tableView = [[UITableViewalloc]initWithFrame :[UIScreenmainScreen].bounds];//
style:UITableViewStyleGrouped
tableView.backgroundColor= [UIColorcolorWithRed:(float)(242/250.0)green:(float)(242/250.0)blue:(float)(242/250.0)alpha:1];
tableView.delegate=self;
tableView.dataSource=self;
tableView.tableHeaderView=self.headerView;
tableView.tableFooterView=self.footerView;
// tableView.scrollEnabled = NO;
[self.viewaddSubview:tableView];
}
#pragma mark - 懶載入 headerView
-(UIView*)headerView{
if (!_headerView) {
_headerView= [[UIViewalloc]init];
// 建立 logo 圖片 UIImageView* logoImageView = [[UIImageViewalloc]init];
logoImageView.backgroundColor= [UIColorcolorWithRed:((float)arc4random_uniform(256)/255.0)green:((float)arc4random_uniform(256)/255.0)blue:((float)arc4random_uniform(256)/255.0)alpha:1];
logoImageView.centerX= (375-150) *0.5;
logoImageView.y=30;
logoImageView.width=150;
logoImageView.height=150;
// 設定 HeaderView 大小 _headerView.frame=CGRectMake(0,0,kWIDTH, logoImageView.y+ logoImageView.height+30);
NSLog(@"%f",_headerView.height);
// 新增 logo
[_headerViewaddSubview:logoImageView];
}
return _headerView;
}
#pragma mark - 懶載入 footerView
- (UIView*)footerView{
if (!_footerView) {
_footerView=[[UIViewalloc]init];
_footerView.frame=CGRectMake(0,0,KWIDTH,KHEIGHT-_headerView.height-44 - 64);
// _footerView.backgroundColor = [UIColor redColor]; // 使用者交流 QQ 群 UILabel* userLabel = [[UILabelalloc]init];
userLabel.text=@"DDDDDD:";
userLabel.font= [UIFontsystemFontOfSize:18];
userLabel.textColor= [UIColorcolorWithHexString:@"#c7c7c7"];
[userLabel sizeToFit];
UILabel* QQLabel = [[UILabelalloc]init];
QQLabel.text=@"QQXXXXXXXXXX";
QQLabel.font= [UIFontsystemFontOfSize:18];
QQLabel.textColor= [UIColorcolorWithHexString:@"#07c0c0"];
[QQLabel sizeToFit];
userLabel.x= (KWIDTH- userLabel.width- QQLabel.width) *0.5;
QQLabel.x= userLabel.x+ userLabel.width;
userLabel.y=_footerView.height-88;
QQLabel.y=_footerView.height-88;
// 版本號 // 建立愛心標語 UILabel* versionLabel = [[UILabelalloc]init];
versionLabel.text=@"Xxxxxxx 222222";
versionLabel.textColor= [UIColorcolorWithHexString:@"#c7c7c7"];
versionLabel.textAlignment=NSTextAlignmentCenter;
versionLabel.font= [UIFontsystemFontOfSize:18];
[versionLabel sizeToFit];
versionLabel.centerX=KWIDTH * 0.5;
versionLabel.y=_footerView.height-56;
[_footerViewaddSubview:userLabel];
[_footerViewaddSubview:versionLabel];
[_footerViewaddSubview:QQLabel];
}
return _footerView;
}
#pragma mark - UItableView的資料來源代理方法// 一共多少行
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{
return 1;
}
// 每行長啥樣
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
static NSString * aboutKey = @"aboutKey";
UITableViewCell* cell = [tableViewdequeueReusableCellWithIdentifier:aboutKey];
if (!cell) {
cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:aboutKey];
}
cell.textLabel.text=@"XXXXXX";
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
cell.backgroundColor= [UIColorwhiteColor];
return cell;
}
#pragma mark - 點選 cell 跳轉至下一個控制器- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath{
ZJHUserProtocolViewController* ptl = [[ZJHUserProtocolViewControlleralloc]init];
[self.navigationControllerpushViewController:ptlanimated:YES];
}
#pragma mark - 組的 Header 高度- (CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section{
return 0;
}
#pragma mark - 組的 footer 的高度-(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section{
return 0;
}
#import "ZJHUserProtocolViewController.h"
#import "UIView+Extension.h"
#import "UIColor+Helpers.h"#define kWIDTH [UIScreen mainScreen].bounds.size.width
@interface ZJHAboutViewController ()<UITableViewDataSource,UITableViewDelegate>
@property (strong,nonatomic
@property (strong,nonatomic)UIView* footerView;
@end@implementation ZJHAboutViewController
#pragma mark - 關於產品類
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view. // nav 的左側按鈕 和 標題 UIBarButtonItem*leftItem = [[UIBarButtonItemalloc
self.navigationItem.leftBarButtonItem= leftItem;
self.navigationItem.title=@"NavigationController";
// 建立 tableView UITableView* tableView = [[UITableViewalloc]initWithFrame
tableView.backgroundColor= [UIColorcolorWithRed:(float)(242/250.0)green:(float)(242/250.0)blue:(float)(242/250.0)alpha:1];
tableView.delegate=self;
tableView.dataSource=self;
tableView.tableHeaderView=self.headerView;
tableView.tableFooterView=self.footerView;
// tableView.scrollEnabled = NO;
[self.viewaddSubview:tableView];
}
#pragma mark - 懶載入 headerView
-(UIView*)headerView{
if (!_headerView) {
_headerView= [[UIViewalloc]init];
// 建立 logo 圖片 UIImageView* logoImageView = [[UIImageViewalloc]init];
logoImageView.backgroundColor= [UIColorcolorWithRed:((float)arc4random_uniform(256)/255.0)green:((float)arc4random_uniform(256)/255.0)blue:((float)arc4random_uniform(256)/255.0)alpha:1];
logoImageView.centerX= (375-150) *0.5;
logoImageView.y=30;
logoImageView.width=150;
logoImageView.height=150;
// 設定 HeaderView 大小 _headerView.frame=CGRectMake(0,0,kWIDTH, logoImageView.y+ logoImageView.height+30);
NSLog(@"%f",_headerView.height);
// 新增 logo
[_headerViewaddSubview:logoImageView];
}
return _headerView;
}
#pragma mark - 懶載入 footerView
- (UIView*)footerView{
if (!_footerView) {
_footerView=[[UIViewalloc]init];
_footerView.frame=CGRectMake(0,0,KWIDTH,KHEIGHT-_headerView.height-44 - 64);
// _footerView.backgroundColor = [UIColor redColor]; // 使用者交流 QQ 群 UILabel* userLabel = [[UILabelalloc]init];
userLabel.text=@"DDDDDD:";
userLabel.font= [UIFontsystemFontOfSize:18];
userLabel.textColor= [UIColorcolorWithHexString:@"#c7c7c7"];
[userLabel sizeToFit];
UILabel* QQLabel = [[UILabelalloc]init];
QQLabel.text=@"QQXXXXXXXXXX";
QQLabel.font= [UIFontsystemFontOfSize:18];
QQLabel.textColor= [UIColorcolorWithHexString:@"#07c0c0"];
[QQLabel sizeToFit];
userLabel.x= (KWIDTH- userLabel.width- QQLabel.width) *0.5;
QQLabel.x= userLabel.x+ userLabel.width;
userLabel.y=_footerView.height-88;
QQLabel.y=_footerView.height-88;
// 版本號 // 建立愛心標語 UILabel* versionLabel = [[UILabelalloc]init];
versionLabel.text=@"Xxxxxxx 222222";
versionLabel.textColor= [UIColorcolorWithHexString:@"#c7c7c7"];
versionLabel.textAlignment=NSTextAlignmentCenter;
versionLabel.font= [UIFontsystemFontOfSize:18];
[versionLabel sizeToFit];
versionLabel.centerX=KWIDTH * 0.5;
versionLabel.y=_footerView.height-56;
[_footerViewaddSubview:userLabel];
[_footerViewaddSubview:versionLabel];
[_footerViewaddSubview:QQLabel];
}
return _footerView;
}
#pragma mark - UItableView的資料來源代理方法// 一共多少行
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{
return 1;
}
// 每行長啥樣
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
static NSString * aboutKey = @"aboutKey";
UITableViewCell* cell = [tableViewdequeueReusableCellWithIdentifier:aboutKey];
if (!cell) {
cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:aboutKey];
}
cell.textLabel.text=@"XXXXXX";
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
cell.backgroundColor= [UIColorwhiteColor];
return cell;
}
#pragma mark - 點選 cell 跳轉至下一個控制器- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath{
ZJHUserProtocolViewController* ptl = [[ZJHUserProtocolViewControlleralloc]init];
[self.navigationControllerpushViewController:ptlanimated:YES];
}
#pragma mark - 組的 Header 高度- (CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section{
return 0;
}
#pragma mark - 組的 footer 的高度-(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section{
return 0;
}