美文网首页
iOS开发适配显示长图

iOS开发适配显示长图

作者: pengshuangta | 来源:发表于2018-08-21 14:57 被阅读956次

    1、背景:

    需求:app显示一张app的使用说明长图。

    2、实现:

    UIScrollView + UIImageView,设置ScrollView的contentSize为图片的高度

    3、主要代码

    UIScrollView
    #pragma mark - scorllView
    -(UIScrollView *)scView{
        if (!_scView) {
            //获取导航栏和状态栏的高度
            CGFloat barHeight = [self barHeight];
            _scView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, UPScrrenWidth, UPScreenHeight - barHeight)];
            CGFloat imgH = [self imgContentHeight];
            _scView.contentSize = CGSizeMake(0,imgH);//设置滚动视图的大小
    //        _scView.pagingEnabled = YES;//设置是否可以进行画面切换  分块显示
            _scView.bounces = NO;
            _scView.showsHorizontalScrollIndicator = NO;//隐藏水平滚动条
            _scView.showsVerticalScrollIndicator = NO;//
            [self.view addSubview:_scView];
        }
        return _scView;
    }
    
    UIImageView
    #pragma mark - 显示图片的ImgView
    -(UIImageView *)showImg{
        if (!_showImg) {
            CGFloat imgH = [self imgContentHeight];
            _showImg = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0,UPScrrenWidth , imgH)];
            //设置imageView的背景图
            [_showImg setImage:BundleImg(@"Listen/操作说明.jpg")];
            //给imageView设置区域
            _showImg.contentMode = UIViewContentModeScaleAspectFill;
            //超出边界的剪切
    //        [_showImg setClipsToBounds:YES];
            //把视图添加到当前的滚动视图中
            [self.scView addSubview:_showImg];
        }
        return _showImg;
    }
    
    内容的高度
    #pragma mark - 内容的高度
    -(CGFloat)imgContentHeight{
        //获取图片高度
        UIImage *img = BundleImg(@"Listen/操作说明.jpg");
        CGFloat imgHeight = img.size.height;
        CGFloat imgWidth = img.size.width;
        CGFloat imgH = imgHeight * (UPScrrenWidth / imgWidth);
        return imgH;
    }
    
    获取导航栏和状态栏的高度
    #pragma mark - 获取导航栏和状态栏的高度
    -(CGFloat)barHeight{
        //获取导航栏和状态栏的高度
        CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
        CGRect navBarFrame = self.navigationController.navigationBar.frame;
        CGFloat barHeight = statusBarFrame.size.height + navBarFrame.size.height;
        return barHeight;
    }
    

    总结:

    个人觉得这种类似注册法律条文、操作说明、用户手册等,可用H5实现,iOS和android通过webView加载就行,既节省开发成本,有方便修改维护。

    本人的一点开发小记,如果对你有帮助欢迎小❤️❤️,另不吝赐教。

    相关文章

      网友评论

          本文标题:iOS开发适配显示长图

          本文链接:https://www.haomeiwen.com/subject/njfjiftx.html