WKWebView載入進度條(仿微信)
WKWebView添加了estimatedProgress屬性(double型別),我們可以利用該屬性來設定UIProgressView
- 為頁面新增UIProgressView屬性
@property (nonatomic, strong) WKWebView *mywebView;
@property (nonatomic, strong) UIProgressView *progressView;//設定載入進度條
- 懶載入UIProgressView
-(UIProgressView *)progressView{
if (!_progressView) {
_progressView = [[UIProgressView alloc]
initWithProgressViewStyle:UIProgressViewStyleDefault];
_progressView.frame = CGRectMake(0, 64, screen_width, 5);
[_progressView setTrackTintColor:[UIColor colorWithRed:240.0/255
green:240.0/255
blue:240.0/255
alpha:1.0]] ;
_progressView.progressTintColor = [UIColor greenColor];
}
return _progressView;
}
- 在初始化WKWebView時(我是在懶載入時) kvo 新增監控
[_mywebView addObserver:self
forKeyPath:NSStringFromSelector(@selector(estimatedProgress))
options:0
context: nil];
- 頁面開始載入時,隱藏進度條
//開始載入
-(void)webView:(WKWebView *)webView
didStartProvisionalNavigation:(WKNavigation *)navigation{
//開始載入的時候,讓進度條顯示
self.progressView.hidden = NO;
}
- kvo 監聽進度
//kvo 監聽進度
-(void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary <NSKeyValueChangeKey,id> *)change
context:(void *)context{
if ([keyPath isEqualToString:NSStringFromSelector(@selector(estimatedProgress))]
&& object == self.mywebView) {
[self.progressView setAlpha:1.0f];
BOOL animated = self.mywebView.estimatedProgress > self.progressView.progress;
[self.progressView setProgress:self.mywebView.estimatedProgress
animated:animated];
if (self.mywebView.estimatedProgress >= 1.0f) {
[UIView animateWithDuration:0.3f
delay:0.3f
options:UIViewAnimationOptionCurveEaseOut
animations:^{
[self.progressView setAlpha:0.0f];
}
completion:^(BOOL finished) {
[self.progressView setProgress:0.0f animated:NO];
}];
}
}else{
[super observeValueForKeyPath:keyPath
ofObject:object
change:change
context:context];
}
}
- 在dealloc方法裡移除監聽
-(void)dealloc{
[self.mywebView removeObserver:self
forKeyPath:NSStringFromSelector(@selector(estimatedProgress))];
}
相關推薦
WKWebView載入進度條(仿微信)
WKWebView添加了estimatedProgress屬性(double型別),我們可以利用該屬性來設定UIProgressView 為頁面新增UIProgressView屬性 @pro
Android 使用RecyclerView實現(仿微信)的聯絡人A-Z字母排序和過濾搜尋功能
之前做專案的時候遇到一個需求是實現品牌的字母排序功能,網上的資料很多,但是有一部分有bug,這篇文章是我學習和解決部分bug之後的總結。今天帶來的是RecyclerView的A-Z字母排序和過濾搜尋功能。 首先上效果圖: 重點:1、實現資料排序分類 2、
Android 實現自定義安全數字鍵盤(仿微信)
背景 大部分的金融App會對預設的數字鍵盤進行處理,以實現自定義的數字安全鍵盤。基於此,本文對對微信數字鍵盤樣式進行了仿寫,實現了一套自定義的數字安全鍵盤(支援隨機數字分佈)。 一.圖示效果 二.需要考慮的問題 佈局的實現方式; demo中使用了popupw
開發(仿微信)Android日程總結(四)
最後一次記錄了,通訊基本實現,朋友圈粗略實現,新增好友實現。 其中一部分發朋友圈新增好友在我的GitHub上,另一部分是組員用eclipse寫的。gong共用一個數據庫,可是開發出兩個軟體,無法整合(
iOS開發-自定義相機(仿微信)拍照、視訊錄製
網上有很多自定義相機的例子,這裡只是我臨時寫的一個小demo,僅供參考: 用到了下面幾個庫: #import <AVFoundation/AVFoundation.h> #import <AssetsLibrary/AssetsLibra
Android二維碼(仿微信,輕量Zxing)
前言 要做一個功能,二維碼識別。網上找一堆相關的Demo,但是總不是想要的效果,或者都是多年前的版本,權衡考慮之後,決定親自操刀。不糾結直接選中Zxing框架,https://github.com/zxing/zxing 在網站上直接clone下來,執行,然後
純css使用線性漸變實現滾動進度條(來自於微信前端早讀課)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initi
多種方式實現底部選單欄(仿微信介面)
關於底部選單是什麼,我想沒必要介紹了,在市場上的APP裡太常見了,這裡提供兩種方式來實現。 記得之前寫過幾篇關於底部選單實現的方法,有興趣的朋友可以看看: 今天帶來種相對更通俗易懂的寫法,不再和過去一樣去沿用TabHost了,這次我們直接用LinearLayout佈
Android中多圖片選擇器ImagePicker庫的使用(仿微信、非常容易整合)
原文地址: https://github.com/jeasonlzy/ImagePickerImagePickerAndroid自定義相簿,完全仿微信UI,實現了拍照、圖片選擇(單選/多選)、 裁剪 、旋轉、等功能。由於個人時間有限,該專案停止維護如果你發現有bug,或者好的
同一個app不同activity顯示多工(仿微信小程式切換效果)
簡書地址:https://www.jianshu.com/p/a8f695841008 轉載請註明出處 如題,這種效果類似微信小程式顯示的效果,就是開啟微信跳一跳後,切換安卓多工視窗(就是清理記憶體視窗),會看到如下頁面 微信小程式會在其中顯示兩個單獨
Android實現二維碼掃描(仿微信,輕量Zxing)
前言 要做一個功能,二維碼識別。網上找一堆相關的Demo,但是總不是想要的效果,或者都是多年前的版本,權衡考慮之後,決定親自操刀。不糾結直接選中Zxing框架,https://github.com/zxing/zxing 在網站上直接clone下來,執行,然後就發現問題了.
多種風格的圖片載入進度條(Fresco、UIL、Glided多種風格載入)
好了,不說廢話 首先,你必須先建立一個CircleProgress或者RectanglePropress或者其他 CircleProgress progress = new CircleProgress.Builder().
Unity3D研究院之非同步載入遊戲場景與非同步載入遊戲資源進度條(三十一)
非同步任務相信大家應該不會陌生,那麼本章內容MOMO將帶領大家學習Unity中的一些非同步任務。在同步載入遊戲場景的時候通常會使用方法 Application.LoadLevel(“yourScene”); 這句程式碼執行完畢後程序會幹什麼呢??如下圖所示,這是我隨便找了一個遊戲場景
WKWebView載入進度條
一、建立WKWebView和進度條 @property (nonatomic, strong) WKWebView *webView; @property (nonatomic, strong) UIProgressView *pro
安卓開發筆記——多種方式實現底部選單欄(仿微信介面)
關於底部選單是什麼,我想沒必要介紹了,在市場上的APP裡太常見了,這裡提供兩種方式來實現。 記得之前寫過幾篇關於底部選單實現的方法,有興趣的朋友可以看看: 今天帶來種相對更通俗易懂的寫法,不再和過去一樣去沿用TabHost了,這次我們直接用LinearLa
Android中多圖片選擇器PhotoPicker庫的使用(仿微信,秒殺MultiImageSelector)
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); i
Android-SpinKit 載入進度條(登入,網路請求)
Gradle 配置: allprojects { repositories { maven { url "https://jitpack.io" } } } compile 'com.github.ybq:Android-SpinKit
Android模仿iOS實現側滑返回(類似微信)
actionbar fin kth ins any lean blog 模仿 over 我們都知道側滑返回操作是 iOS 裏面比較常見的功能,一般是手指在靠近手機屏幕左邊緣向右滑動就可以關閉當前的界面,iOS 系統提供了這樣的 API,但是 Android 怎麽實現呢? 網
安卓下瀏覽器(包括微信)video 小窗口播放
瀏覽器 str asc col controls vid webkit idt con <video id="video" width="100%" autoplay="autoplay" playsinline x5-playsinline webkit-play
微信PC(windows微信)HOOK
ffffff pro follow hook type 分享圖片 分享 png images 微信PCHOOK。 demo源碼使用易語言進行開發,開發環境為易語言5.8 作者qq:286513187 github地址:https://github.com/changtuiq