zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Gradle 是什么
    Spring AOP知识
    Spring IOC常用注解
    spring 依赖注入
    Java实现基数排序
    Java实现基数排序(解决负数也可以排序)
    2020/4/10安卓开发:Spinner下拉框
    Spring ioc使用
    java实现:归并排序
    centos中docker的安装
  • 原文地址:https://www.cnblogs.com/easyToCode/p/4872937.html
Copyright © 2011-2022 走看看