iOS实现UITableView可自由伸缩Header的实现思路

首先,上一下效果图..

 

思路:

可拉伸图片放的位置咋一看有两种,落在tableHeaderView上或者是落在tableView的(0,0)位置

然而,第一种思路当程序写到图片拉伸的时候就会发现问题,图片的横方向上并不会拉伸,原因是tableHeaderView是配在TableView上的,它的宽度被限制住了,简而言之,第一种思路并不合适.

 

第二种思路就是落在(0,0)上了.其实就是[tableView addSubView],然后慢慢设置一下位置,程序写下来就基本没什么大问题了.

 

过程可能遇到的问题:

1.NavgationBar变透明底下还有一条横线.

解决方法:

[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];

 

2.NavgationBar怎么变透明的.

解决方法:

setBackgroundColor并不管同, 而setBackgroundImage就可以实现, 接着就变成实现Image改变透明度的问题了, 然而, Image并不存在alpha这个属性, 所以要用到Quartz2D的一些知识.

// 生成纯色背景图
- (UIImage *)createPureColorImageWithColor:(UIColor *)color alpha:(CGFloat)alpha size:(CGSize)size
{
    // 纯色的UIView
    UIView *pureColorView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
    pureColorView.backgroundColor = color;
    pureColorView.alpha = alpha;
    
    // 由上下文获取UIImage
    UIGraphicsBeginImageContext(size);
    [pureColorView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *pureColorImage = UIGraphicsGetImageFromCurrentImageContext();
    
    // 结束上下文
    UIGraphicsEndImageContext();
    
    return pureColorImage;
}

 

附上github:  https://github.com/samAroundGitHub/UITableViewHeaderStrectching2

 

posted @ 2015-10-12 21:49  自己的心灵猎手  阅读(1723)  评论(2编辑  收藏  举报