【iOS - 周总结】开发中遇到的小知识点(2018.12.10-2018.12.15)

1.WKWebview加载html文本图片过大,没有自适应屏幕宽高。

在用Webview加载html文本有时候会遇到加载的图片过大,不能自适应屏幕宽高的问题。那么如何解决这个问题?如何使图片自适应屏幕?很简单,只需要加一个js就可以。

直接上代码:

- (WKWebView *)detailWeb {if (!_detailWeb) {NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta); var imgs = document.getElementsByTagName('img');for (var i in imgs){imgs[i].style.maxWidth='100%';imgs[i].style.height='auto';}";WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];WKUserContentController *wkUController = [[WKUserContentController alloc] init];[wkUController addUserScript:wkUScript];WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];wkWebConfig.userContentController = wkUController;_detailWeb = [[WKWebView alloc] initWithFrame:CGRectMake(0, AdaptedWidth(40), SCREEN_WIDTH, SCREEN_HEIGHT-TopNavHeight-AdaptedWidth(40)) configuration:wkWebConfig];_detailWeb.backgroundColor = [UIColor whiteColor];_detailWeb.navigationDelegate = self;}return _detailWeb;
}

2.scrollview使用Masnory自动布局

近期在项目中使用了Masnory。在一个关于我们的页面由于数据网络请求下来,且内容长度不一定,我就决定使用Masnory+ScrollView来实现。结果就出现了一些些问题,scrollview就是不能滑动。后来研究解决了。

注意:个人觉得使用masnory就是和在xib、storyboard中设置一样,缺什么约束就写什么约束。

使用过程就在代码里显示。

#import "ViewController.h"#import "Masonry/Masonry.h"@interface ViewController ()@property (nonatomic, strong) UIScrollView *scrollView;@property (nonatomic, strong) UIView *scrollContentView;@property (nonatomic, strong) UILabel *titleLabel;
@property (nonatomic, strong) UILabel *subLabel;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.view.backgroundColor = [UIColor whiteColor];self.title = @"1";// 1.把scrollView添加到控制器view
    [self.view addSubview:self.scrollView];[self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {make.edges.equalTo(self.view);}];// 2.给scrollView添加一个containerView// 重点 唯一 大小贴合scrollview// 即scrollView的子视图,即过渡视图contentSize,并设置其约束
    [self.scrollView addSubview:self.scrollContentView];[self.scrollContentView mas_makeConstraints:^(MASConstraintMaker *make) {// 注意点:首先确定contentView的位置。如果上下滑动等宽 左右滑动等高 类似于xib
        make.left.top.right.bottom.equalTo(self.scrollView);make.width.equalTo(self.scrollView);}];// 3.此后所有视图添加在scrollContentView上
    [self.scrollContentView addSubview:self.titleLabel];[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {// 注意点这里面设置子视图都要添加在contentView上 必须注意make.left.equalTo(self.scrollContentView.mas_left).offset(20);make.right.equalTo(self.scrollContentView.mas_right).offset(-20);make.top.equalTo(self.scrollContentView.mas_top).offset(100);make.height.mas_equalTo(40);}];[self.scrollContentView addSubview:self.subLabel];[self.subLabel mas_makeConstraints:^(MASConstraintMaker *make) {make.left.equalTo(self.scrollContentView.mas_left).offset(20);make.right.equalTo(self.scrollContentView.mas_right).offset(-20);make.top.equalTo(self.titleLabel.mas_bottom).offset(40);// 这个可写在这个位置 也可以在网络请求结束后添加make.bottom.equalTo(self.scrollContentView.mas_bottom).offset(-100);}];// 模拟网络请求dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{self.subLabel.text = @"精雕机哦跌跤就叠加偶家迪欧家饿哦就掉得哦啊基金的年纪大递交炯炯都我阿尔加到的骄傲的   待机饿哦案件都安静哦啊接打带哦接啊哦啊接待偶尔接爱哦的旧爱带哦精雕机带偶觉得 基调而骄傲的奥迪偶记带哦精雕机哦跌跤就叠加偶家迪欧家饿哦就掉得哦啊基金的年纪大递交炯炯都我阿尔加到的骄傲的   待机饿哦案件都安静哦啊接打带哦接啊哦啊接待偶尔接爱哦的旧爱带哦精雕机带偶觉得 基调而骄傲的奥迪偶记带哦精雕机哦跌跤就叠加偶家迪欧家饿哦就掉得哦啊基金的年纪大递交炯炯都我阿尔加到的骄傲的   待机饿哦案件都安静哦啊接打带哦接啊哦啊接待偶尔接爱哦的旧爱带哦精雕机带偶觉得 基调而骄傲的奥迪偶记带哦精雕机哦跌跤就叠加偶家迪欧家饿哦就掉得哦啊基金的年纪大递交炯炯都我阿尔加到的骄傲的   待机饿哦案件都安静哦啊接打带哦接啊哦啊接待偶尔接爱哦的旧爱带哦精雕机带偶觉得 基调而骄傲的奥迪偶记带哦精雕机哦跌跤就叠加偶家迪欧家饿哦就掉得哦啊基金的年纪大递交炯炯都我阿尔加到的骄傲的   待机饿哦案件都安静哦啊接打带哦接啊哦啊接待偶尔接爱哦的旧爱带哦精雕机带偶觉得 基调而骄傲的奥迪偶记带哦精雕机哦跌跤就叠加偶家迪欧家饿哦就掉得哦啊基金的年纪大递交炯炯都我阿尔加到的骄傲的   待机饿哦案件都安静哦啊接打带哦接啊哦啊接待偶尔接爱哦的旧爱带哦精雕机带偶觉得 基调而骄傲的奥迪偶记带哦";// 在上面写了这个位置可以不写 最好不要都写  会造成代码混乱
//        // 设置过渡视图的底边距(此设置将影响到scrollView的contentSize)
//        [self.scrollContentView mas_makeConstraints:^(MASConstraintMaker *make) {
//            make.bottom.equalTo(self.subLabel.mas_bottom).offset(30);
//        }];
    });// Do any additional setup after loading the view, typically from a nib.
}#pragma mark - Lazy Setter
- (UIScrollView *)scrollView {if (!_scrollView) {_scrollView = [[UIScrollView alloc] init];_scrollView.backgroundColor = [UIColor greenColor];}return _scrollView;
}- (UIView *)scrollContentView {if (!_scrollContentView) {_scrollContentView = [[UIView alloc] init];_scrollContentView.backgroundColor = [UIColor redColor];}return _scrollContentView;
}- (UILabel *)titleLabel {if (!_titleLabel) {_titleLabel = [[UILabel alloc] init];_titleLabel.text = @"title";_titleLabel.textColor = [UIColor blackColor];_titleLabel.backgroundColor = [UIColor whiteColor];_titleLabel.font = [UIFont systemFontOfSize:16];_titleLabel.numberOfLines = 1;}return _titleLabel;
}- (UILabel *)subLabel {if (!_subLabel) {_subLabel = [[UILabel alloc] init];_subLabel.textColor = [UIColor blackColor];_subLabel.backgroundColor = [UIColor whiteColor];_subLabel.font = [UIFont systemFontOfSize:16];_subLabel.numberOfLines = 0;}return _subLabel;
}@end

参考:博客一、博客二。

3.设置label的最小字体。

 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(30, 100, 100, 30)];label.text = @"fjirfjirjfi积分敌人的积极对得金蝶鸡的解决跌阿达啊打发 啊打发";label.adjustsFontSizeToFitWidth = YES;label.font = [UIFont systemFontOfSize:18];label.textColor = [UIColor blackColor];
//    label.minimumFontSize = 14;label.minimumScaleFactor = 0.5;[self.view addSubview:label];

在6.0系统后minimumFontSize属性已经被弃用。推荐使用minimumScaleFactor。

注意点:

    1、0<minimumScaleFactor<1时才能达到效果。(字体10,想要最小字体5,设置0.5即可)

    2、另外要设置adjustsFontSizeToFitWidth=YES.

    3、还有需要UIlabel的行数是1的时候才有用,多行的label是不行的

    4、minimumScaleFactor默认值是0,此时最小字体就是设置的字体大小,和1的效果一样。

转载于:https://www.cnblogs.com/weicyNo-1/p/10123555.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Create React App DevOps自动化工作中所有无聊的部分

by James Y Rauhut詹姆士鲁豪(James Y Rauhut) 如何使用Create React App DevOps自动化工作中所有无聊的部分 (How I automate all of the boring parts of my job with Create React App DevOps) When you have responsibilities as one of the only designers — and possib…

java 无侵入监控_MyPerf4J 一个高性能、无侵入的Java性能监控和统计工具

MyPerf4J一个针对高并发、低延迟应用设计的高性能且无侵入的实时Java性能监控和统计工具。 受 perf4j 和 TProfiler启发而来。MyPerf4J具有以下几个特性&#xff1a;无侵入: 采用JavaAgent方式&#xff0c;对应用程序完全无侵入&#xff0c;无需修改应用代码高性能: 性能消耗非…

Apple Swift编程语言新手教程

文件夹 1 简单介绍2 Swift入门3 简单值4 控制流5 函数与闭包6 对象与类7 枚举与结构1 简单介绍 今天凌晨Apple刚刚公布了Swift编程语言&#xff0c;本文从其公布的书籍《The Swift Programming Language》中摘录和提取而成。希望对各位的iOS&OSX开发有所帮…

javascript 减少回流

减少回流&#xff08;REFLOWS&#xff09; 当浏览器重新渲染文档中的元素时需要 重新计算它们的位置和几何形状&#xff0c;我们称之为回流。回流会阻塞用户在浏览器中的操作&#xff0c;因此理解提升回流时间是非常有帮助的。 回流时间图表 你应该批量地触发回流或重绘&#x…

[国家集训队] 特技飞行

题目背景 1.wqs爱好模拟飞行。 2.clj开了一家神犇航空&#xff0c;由于clj还要玩游戏&#xff0c;所以公司的事务由你来打理。 注意&#xff1a;题目中只是用了这样一个背景&#xff0c;并不与真实/模拟飞行相符 题目描述 神犇航空开展了一项载客特技飞行业务。每次飞行长N个单…

react 手指移开_代码简介:React的五个死亡手指

react 手指移开Here are three stories we published this week that are worth your time:这是我们本周发布的三个值得您关注的故事&#xff1a; React’s Five Fingers of Death. Master these five concepts, then master React: 10 minute read React的五指死亡。 掌握这五…

java lock接口_Java Lock接口

Java Lock接口java.util.concurrent.locks.Lock接口用作线程同步机制&#xff0c;类似于同步块。新的锁定机制更灵活&#xff0c;提供比同步块更多的选项。 锁和同步块之间的主要区别如下&#xff1a;序列的保证 - 同步块不提供对等待线程进行访问的序列的任何保证&#xff0c;…

springcloud-05-ribbon中不使用eureka

ribbon在有eureka的情况下, 可以不使用eureka, 挺简单, 直接上代码 application.xml server:port: 7002 spring:# 设置eureka中注册的名称, 全小写, 否则大小写混杂出现问题application:name: microservice-consumer-movie-ribben-ymllogging:level:root: INFOorg.hibernate: I…

SQL mysql优化

慢查询 如何通过慢查日志发现有问题的SQL&#xff1f; 查询次数多且每次查询占用时间长的SQL pt-query-digest分析前几个查询IO大的SQL pt-query-diges分析中的Rows examine项未命中索引的SQL pt-query-digest分析中Rows examine 和Rows Send的对比如何分析SQL查询 使用explain…

转: 关于 ssl的建立链接的过程

转自&#xff1a; http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html SSL/TLS协议运行机制的概述 作者&#xff1a; 阮一峰 日期&#xff1a; 2014年2月 5日 互联网的通信安全&#xff0c;建立在SSL/TLS协议之上。 本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思…

第一章第一个c#程序上机_我从第一个#100DaysOfCode中学到的东西

第一章第一个c#程序上机On May 17th, I completed my first round of #100DaysOfCode. In case you haven’t heard, #100DaysOfCode is a challenge, or movement, started by Alexander Kallaway for people interested in coding. The basis of the challenge is that you p…

[Swift通天遁地]一、超级工具-(2)制作美观大方的环形进度条

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…

SPOJ QTREE6 lct

题目链接 岛娘出的题。还是比較easy的 #include <iostream> #include <fstream> #include <string> #include <time.h> #include <vector> #include <map> #include <queue> #include <algorithm> #include <stack> #in…

使用charles 抓取手机上的操作

Charles上的设置要截取iPhone上的网络请求&#xff0c;我们首先需要将Charles的代理功能打开。在Charles的菜单栏上选择“Proxy”->“Proxy Settings”&#xff0c;填入代理端口8888&#xff0c;并且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的设置。如…

FreeCodeCamp纳什维尔聚会的回顾

by Seth Alexander塞斯亚历山大(Seth Alexander) FreeCodeCamp纳什维尔聚会的回顾 (A Recap from the freeCodeCamp Nashville Meetup) At a recent freeCodeCamp meetup, a small group of campers got together to solve some coding challenges and we talk shop.在最近的f…

php查询车位系统代码,php车辆违章查询数据示例

方便有车一族随时了解自己是否有过交通违章&#xff0c;避免因遗忘或逾期处理违章罚单而造成的不必要损失。本代码示例是基于聚合数据全国车辆违章查询API的调用&#xff0c;有需要的可以往下看。使用前你需要&#xff1a;一、引入封装好的请求类class.juhe.wz.phpheader(Conte…

[HNOI2011]XOR和路径

嘟嘟嘟 一看到异或&#xff0c;就想到按位处理&#xff0e; 当处理到第\(i\)位的时候&#xff0c;\(f[u]\)表示节点\(u\)到\(n\)的路径&#xff0c;这一位为\(1\)的期望&#xff0c;那么为\(0\)就是\(1 - f[u]\)&#xff0c;于是有\[f[u] \frac{1}{d[u]} (\sum _ {v \in V, w …

PHP 文件加密Zend Guard Loader 学习和使用(如何安装ioncube扩展对PHP代码加密)

一、大体流程图 二、PHP 项目文件加密 下表列出了Zend产品中的PHP版本及其内部API版本和Zend产品版本。 如何加密请往后看 三、如何使用 第一步&#xff1a;确认当前环境 Amai Phalcon 前&#xff0c;请确认您具备以下两个条件&#xff0c;如果您的环境不满足此条件&#xff0c…

前向声明

前向声明的定义&#xff1a;有些时候我们可以声明一些类但是并不去定义它&#xff0c;当然这个类的作用也很有限了。 如&#xff1a;class A; 声明一个foo类&#xff0c;这个声明&#xff0c;有时候也叫做前向声明(forward declaration)&#xff0c;在声明完这个foo类之后&…

php寻找文本,PHP文本数据库的搜索方法_php

//php文本数据库的搜索方法searchstr("/".preg_quote($searchstr)."/");//$searchstr是查找的关键字$recordsfile($file);//获取所有的记录数http://www.gaodaima.com/45906.htmlPHP文本数据库的搜索方法_php//$file是查找的数据文件$search_reocrdspreg_g…