1. 程式人生 > >一個關於tableView的footerView的子控制元件y 座標的 BUG

一個關於tableView的footerView的子控制元件y 座標的 BUG

#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;
}