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

本文探讨了在UITableView中图片拉伸的两种常见方法:一种是放置在tableHeaderView上,另一种是在(0,0)位置放置。通过分析,发现tableHeaderView受限于TableView宽度,无法实现图片横方向拉伸。推荐在(0,0)位置放置图片,通过编程调整位置解决拉伸问题。文章还详细介绍了如何处理NavigationBar透明度和底部横线显示问题,提供了解决方法和示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,上一下效果图..

 

思路:

可拉伸图片放的位置咋一看有两种,落在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

 

转载于:https://www.cnblogs.com/easyToCode/p/4872937.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值