iOS电商类App商品图文详情适应屏幕宽度

近期在做一款电商类的App,做到商品详情页时,纠结到了图文详情的适配问题,脑细胞纠结一下午之后,共找到两种方法,一种是在服务端返回的HTML字符串前边拼接上图片的样式,代码如下:

webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 50, self.frame.size.width, self.frame.size.height-50)];
[self addSubview:webview];
webview.delegate = self;
webview.scalesPageToFit = YES;
webview.dataDetectorTypes = UIDataDetectorTypeAll;
NSString * htmlStyle = @" <style type=\"text/css\"> img{ width: 100%; height: auto; display: block; } </style> ";
webStr = [htmlStyle stringByAppendingString:webStr];
[webview loadHTMLString:webStr baseURL:nil];

webStr是你自己需要加载的图文详情的HTML字符串.
另一种使用到了js交互,代码如下:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    CGFloat width = [[UIScreen mainScreen]bounds].size.width;
    NSString *jsStr = [NSString stringWithFormat:@"var script = document.createElement('script');"
                       "script.type = 'text/javascript';"
                       "script.text = \"function ResizeImages() { "
                       "var myimg,oldwidth;"
                       "var maxwidth = '%f';" //自定义宽度
                       "for(i=0;i <document.images.length;i++){"
                       "myimg = document.images[i];"
                       "if(myimg.width > maxwidth){"
                       "oldwidth = myimg.width;"
                       "myimg.width = maxwidth;"
                       "}"
                       "}"
                       "}\";"
                       "document.getElementsByTagName('head')[0].appendChild(script);",width];
    [webView stringByEvaluatingJavaScriptFromString:jsStr];
    [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];
}

需要注意的是两种方法不可共用,笔者推荐第一种方法,简单粗暴有力,使用第二种方法时webView的设置webview.scalesPageToFit = YES;需要去掉!
效果图如下:


0265864D2F33EC05A9252353A52AB3C5.jpg

微博关注 清风徐来花满楼 共同讨论学习进步!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,885评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,263评论 4 61
  • 更重要的是她已经睁不开眼了…… 可是,预想的疼痛没有到来…… 难道是神经麻木了吗…… “啊!你这个畜生!”一声惨叫...
    霜月落花阅读 207评论 0 0
  • hello~ 我是summerlemon夏の漓檬 萌萌哒(✪ω✪)
    抹甜的糖果QVQ阅读 179评论 0 0
  • 我有一个秘密 一直捧在手心里 小心翼翼 像个写了一半的谜语 这个秘密 有简单的名字 有永恒的气息 我的秘密 叫 我喜欢你
    晴天YI阅读 177评论 0 2