【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.pswp.cn/news/395710.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395710.shtml
英文地址,請注明出處:http://en.pswp.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…