1. 程式人生 > >網路資料載入等待頁面的簡單實現

網路資料載入等待頁面的簡單實現

iOS系統提供的載入等待控制元件UIActivityIndicatorView(傳說中的菊花), 有時候難免有點單調生澀. 故在此簡單封裝了一下:

#import <UIKit/UIKit.h>

#define kSideWidth 80
#define kSideHeight 80

#define kCornerRadius 5

#define kLoadingTime 5

#define kTips "資料努力載入中"

#define kTipsTimeInterval 0.5

typedef void (^failedBlock)(void);


typedef NS_ENUM(NSInteger, MHPopViewType) {
    MHPopViewTypeFullScreen,
    MHPopViewTypeWrapContent,
    MHPopViewTypeFullScreenWithTips,
    MHPopViewTypeWrapContentWithTips,
    MHPopViewTypeTips,
};


@interface MHProgress : UIView
- (instancetype)initWithType:(MHPopViewType)type;

- (instancetype)initWithType:(MHPopViewType)type failedBlock:failedBlock;
- (void)showLoadingView;
- (void)closeLoadingView;
- (void)showTips:(NSString *)tips intInterval:(CGFloat)timeInterval;

@end

MHPopViewType:



還有兩種就是隻顯示菊花, 沒有提示的文字.

提供的介面也很簡單, 初始化的時候帶上定義好的type就OK, 然後就是對應的顯示方法, 不用解釋, 字面意思就夠了. 

需要注意的一點是, 有個init方法會有傳入一個空得Block, 這個Block中的程式碼塊是在規定顯示時間(kLoadingTime)顯示完之後執行的. 舉個栗子吧:

在進行網路請求資料之前, 為了阻止使用者對UI的操作, 定義一個MHProgress, 然後把它show出來. 當網路資料請求過來的時候, 就可以close掉它. 但這只是理想情況, 當網路狀況不是很好地時候, 這個時候就不能讓它一直show著, 一般採取的做法是, 給它了固定的顯示時間(kLoadingTime), 超出這個時間就可以假定網路請求"失敗"了. 這時, 對"失敗"情況的處理就各取所需了, 可以AlertView一下, 也可以showtips一下. 這些處理就可以在Block中進行.

目前封裝的還有些問題, 比如在例項化一個例項之後, 先對它進行showLoading操作, 再進行showTips操作, 這個時候顯示就會有問題. 因為是同一個例項, 在實現的時候會對全域性變數有更改, 所以只能定義兩個例項, 對這兩個操作分開進行. 這點讀者也可以進行改善.

原始碼下載

相關推薦

網路資料載入等待頁面簡單實現

iOS系統提供的載入等待控制元件UIActivityIndicatorView(傳說中的菊花), 有時候難免有點單調生澀. 故在此簡單封裝了一下: #import <UIKit/UIKit.h> #define kSideWidth 80 #define kS

Android自定義網路資料載入等待框的簡單封裝

先上效果圖(在5.0以上機型顯示效果,如果是4.0會變為灰色): 自定義Dialog如下: public class LoadingCustom extends Dialog{ pr

Spring MVC(三)控制器獲取頁面請求引數以及將控制器資料傳遞給頁面實現重定向的方式

首先做好環境配置 在mvc.xml裡進行配置   1.開啟元件掃描   2.開啟基於mvc的標註   3.配置試圖處理器 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www

C語言:Winsock網路程式設計—ping命令的簡單實現

Winsock網路程式設計—ping命令的簡單實現 前言 先宣告 博主實現的是Windows平臺的ping命令的簡單實現,沒有做域名解析,只能直接ping ip。我們要實現ping 肯定得先知道ping的實現原理,ping 傳送的 ICMP報文。實際上的落腳點 就是對 ICMP協

3.網路程式設計-tcp的伺服器簡單實現

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/1/13 22:03 # @Author : ChenAdong # @email : [email protected] # 實現tcp伺服

載入圖片解決在ajax資料載入頁面出現短暫空白的問題

在專案中用ajax非同步獲取資料後有時會因為資料問題或者網路問題,頁面一直顯示空白,現在用載入圖片來過渡這種狀態: <script> $(function(){ $.ajax({

struts2資料載入頁面的三種方式

 sruts2的資料共享的三種方式: 在web專案中都是使用域物件來共享資料。 struts2提供給開發者使用域物件來共享資料的方法一共有三種。 6.1 第一種方式 ServletActionContext類 getRequest() : 獲取request物件 getReq

網路資料抓取及其R實現(以鏈家樓盤為例)

本次資料抓取的鏈家新房樓盤,由於對網路抓取資料還不熟悉,所以現在只抓取了北京地區的樓盤。我在學習過程中主要參考資料為《基於R語言的自動資料收集》,這本書確實不錯,在前八章講解的基礎知識,以本書的配套網站資源為講解基礎,但是在按照書中抓取資料時有些地方和書本講的不

PullToRefreshListView上拉載入,下拉重新整理 重新整理網路資料 簡單實現ListView顯示網路資料

1、依賴: compile 'com.google.code.gson:gson:2.6.2' compile 'com.github.userswlwork:pull-to-refresh:1.0.0' 2、許可權: <uses-permission andro

AutoCompleteTextView+Okhttp3+ListView實現簡單網路資料搜尋展示

首先用OKHttp3獲取網路上的資料,並儲存到Serializeable的Bean類集合 OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder()

簡單實現滾動載入資料庫資料

<!DOCTYPE html > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>測試

TensorFlow之神經網路簡單實現MNIST資料集分類

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist=input_data.read_data_sets("MNIST_data",one_hot=True) ba

頁面上拉載入資料(也就是上拉實現分頁)

 之所以發這個部落格是因為網上百度了太多  沒法直接套用  所以寫這個   可以直接套用   先上程式碼截圖 <script type="text/javascript"> //最大頁數 var mix = "${pageInfo.pages}"; var pa

php 爬蟲的簡單實現, 獲取整個頁面, 再把頁面資料匯入本地的檔案當中

$curlobj = curl_init(); //建立一個curl 的資源,下面要用的 curl_setopt($curlobj,CURLOPT_URL,"http://www.baidu.com

SwipeRefreshLayout完美實現ListView網路資料上拉載入以及下拉重新整理

最近才有時間將上拉載入與下拉重新整理進行總結,SwipeRefreshLayout是Android -V4包下自帶的一個重新整理控制元件,但是不足的是它只有下拉重新整理的功能,沒有需要的上拉載入功能,所以我自己添加了上拉載入的功能。 一、首先簡單介紹一下SwipeRefre

數學建模_以fisheriris資料為例使用新版本神經網路工具箱feedforwardnet進行簡單實現

新版本神經網路工具箱feedforwardnet及其簡單實現 勘誤:之前將文章中神經網路工具箱名字feedforwardnet寫做fitforwardnet,六個月過去才發現,失誤失誤,已緊急更正。 問題: 著名的Iris資料集曾被現代生物統計學之

Ajax實現頁面載入等待

function createXMLHttpRequest(){ if(window.XMLHttpRequest){ //Mozilla XMLHttpReq=new XMLHttpRequest(); } else if(

網路請求載入控制元件的簡單實現,能顯示載入中、沒網路載入失敗點選重新載入等狀態

網路請求經常需要用到載入的一個動畫,有這麼幾種狀態: 1、正在載入中,顯示一個動畫。 2、載入成功,則動畫消失。 3、沒網路,則點選能直接開啟設定進行網路設定。 4、載入失敗,則點選能重新載入。 載入控制元件效果如下: 因為使用頻率很高,所以寫了一個控制元件,把這麼些基本

【Android 網路資料解析實現一個簡單的新聞例項(一)】

      一般安卓在學到非同步任務AsyncTask之後都會有個安卓小專案的任務。得到(荔枝新聞,茶百科等)新聞網路介面來解析網路圖片或文字到ListView元件上顯示。其中要使用到的知識大概有:獲取網路資料(HttpUtil),解析網路資料(NewsParse),防止因

Android上實現一個簡單的天氣預報APP(三) 獲取網路資料

學習參考資源:https://www.gitbook.com/book/zhangqx/mini-weather/details 前面我們已經配置好了介面佈局,顯示佈局上的資料都是我們胡亂載入的,接下里我們要將這些資料更新為網路上的真實資料 1)檢查網路連線狀態 1.新建一