1. 程式人生 > >MBProgressHUD擴充套件(自動隱藏,類方法顯示文字)

MBProgressHUD擴充套件(自動隱藏,類方法顯示文字)

#if TARGET_IPHONE_SIMULATOR

#import <objc/objc-runtime.h>

#else

#import <objc/runtime.h>

#import <objc/message.h>

#endif


類方法顯示文字:

+ (MBProgressHUD *)showHUDAddedTo:(UIView *)view

                        labelText:(NSString *)text

                 detailsLabelText:(NSString *)detail

                         animated:(BOOL

)animated

{

MBProgressHUD *hud = [[MBProgressHUDalloc] initWithView:view];

    if (!text) {

        hud.labelText = @"";

    } else {

        hud.labelText = text;

    }

    if (!detail) {

        hud.detailsLabelText = @"";

    } else {

        hud.detailsLabelText = detail;

    }

[view addSubview

:hud];

[hud show:animated];

#if __has_feature(objc_arc)

return hud;

#else

return [hudautorelease];

#endif

}


自動隱藏:

void hideHUDExUIApplication(idself, SEL _cmd)

{

    [MBProgressHUDhideHUDForView:[UIApplicationsharedApplication].keyWindowanimated:YES];

}

+ (MBProgressHUD *)showHUDLabelText:(NSString

*) text

                   detailsLabelText:(NSString *) detail

                       dismissAfter:(int) second

                           animated:(BOOL) animated

{

MBProgressHUD *hub = [MBProgressHUDshowHUDAddedTo:[UIApplicationsharedApplication].keyWindow

                        labelText:text detailsLabelText:detail animated:animated];

if (![[UIApplicationsharedApplication] respondsToSelector:@selector(hideHUDExUIApplication)]) {

        class_addMethod([UIApplicationclass], @selector(hideHUDExUIApplication), (IMP)hideHUDExUIApplication,"[email protected]:");

    }

    [[UIApplication sharedApplication] performSelector:@selector(hideHUDExUIApplication)withObject:nilafterDelay:second inModes:[NSArrayarrayWithObject:NSRunLoopCommonModes]];

    return hub;

}


相關推薦

MBProgressHUD擴充套件自動隱藏方法顯示文字

#if TARGET_IPHONE_SIMULATOR #import <objc/objc-runtime.h> #else #import <objc/runtime.h> #import <objc/message.h> #end

樸素貝葉斯的python實現針對演算法預測不針對文字

首先,感謝Chai_zheng博主提供的程式碼思路,本文程式碼基於該博主思路所編寫!!!感謝這個開源的時代。 一、貝葉斯原理: 作為一名研究(雖然是菜鳥級別的,哈哈),那還是用學習貝葉斯的人員來自稱吧,還是要吹一下貝葉斯的幾大優點的。 貝葉斯網路是一種概率圖形模型,廣泛應用

springboot 自動載入DataSource的相關:DataSourceAutoConfiguration提醒自己看該類執行相關

spring boot 啟動時會預設載入org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration這個類, DataSourceAutoConfiguration類使用了@Configuration註解向sp

C#方法:過載從寫虛擬函式抽象函式隱藏方法

    CSDN廣告是越來越多了,所有部落格筆記不再更新,新網址 DotNet筆記 1:過載   方法過載的主要好處就是,不用為了對不同的引數型別或引數個數,而寫多個函式。       特點:函式名稱必須一樣,返回型別可以不一樣,引數可以不一樣。 using System

python 和物件 屬性方法靜態方法例項屬性例項方法

類:類是抽象的,在使用的時候通常會找到這個類的一個具體的存在,使用這個具體的存在。一個類可以找到多個物件物件: 某一個具體事物的存在,在現實世界中可以是看的到摸得著的。 可以直接使用類與物件的關係: 類就是建立物件的模板類的構成:                1.類的名稱:

工廠方法模式-Factory Method Pattern 工廠三兄弟之工廠方法模式:過載的工廠方法工廠方法隱藏工廠方法模式總結

5 過載的工廠方法        Sunny公司開發人員通過進一步分析,發現可以通過多種方式來初始化日誌記錄器,例如可以為各種日誌記錄器提供預設實現;還可以為資料庫日誌記錄器提供資料庫連線字串,為檔

快學Scala 第一課 變量操作符

引用類型 lan 轉換成 double 算數 字符串 字符串追加 img 方法 Scala 用val定義常量,用var定義變量。 常量重新賦值就會報錯。 變量沒有問題。 註意:我們不需要給出值或者變量的類型,scala初始化表達式會自己推斷出來。當然我們也可以指

靜態方法方法屬性方法

ack posit elf none pre name n) nal last 1.靜態方法:只是名義上歸類管理,實際上在靜態方法裏訪問不了類或實例中的任何屬性。相當於類的工具包。 class Dog(object): def __init__(self,name

python3學習筆記 靜態方法方法屬性方法

SM clas ssm inf pytho ID 靜態方法 delet 分享 靜態方法@statitmetod   只是名義上歸類管理,實際上在靜態方法裏訪問不了類或實例中的任何屬性 類方法@classmethed   只能訪問類變量,不能訪問實例變量 屬性方法@prope

python靜態屬性靜態方法方法

類的屬性 tool 方法 method nbsp 靜態屬性 world assm 函數調用 #靜態屬性的作用是吧類的方法隱藏起來(可以把背後的邏輯隱藏起來),讓用戶感覺是在電泳屬性,而不是方法 class Static: attribute='屬性'

Python學習:17.Python面向對象四、屬性特性成員修飾符的特殊成員

介紹 col 寫代碼 被調用 表示 1.5 emp 成員 object 一、屬性(特性) 普通方法去執行的時候,後面需要加括號,特性方法執行的時候和靜態字段一樣不需要不需要加括號. 特性方法不和字段同名. 特性方法不能傳參數. 在我們定義數據庫字段類的時候,往往需要

Objective-C中方法的getter和setter可以用點運算符嗎?

clang col 靜態變量 變量 uri family lan getc sta Objective-C中,對象實例property的getter和setter可以使用點運算符來操作,那麽類方法的getter和setter可以使用點運算嗎? 答案是肯定的。 看如下代碼

Python:屬性實例屬性私有屬性與靜態方法方法實例方法

所有 參數 方法 rate self 類屬性 不能 anaconda 賦值 類屬性可以直接在方法中賦值,但 一、調用該屬性時,必須先調用該方法; 二、與 init 方法區別是,init方法只初始化一次,初始化完成後作為全局變量。在方法中賦值屬性,每次調用該方法,該屬性初始化

靜態方法方法屬性setter用法delete用法和屬性方法的應用場景

一、靜態方法  1.1、定義    在類中的方法前面通過@staticmethod裝飾器即可把其裝飾的方法變為一個靜態方法 1 2 3 4 5 6 7 8 9 10 class Person(object): &

設計模式學習筆記(5) --計算器的設計模式簡單工廠工廠方法

1.面向過程的計算器 package com.skiff.www.factory.calculator; import java.util.Scanner; /** * @Auther: 一葉扁舟 * @Date: 2018/11/1 20:23 * @Description: 簡單

【python】區域性變數全部變數變數例項變數方法例項方法靜態方法的使用

一:區域性變數 函式內部的變數名如果第一次出現,即被視為定義一個區域性變數,不管全域性域中有沒有用到該變數名,函式中使用的將是區域性變數,區域性變數只能在作用域內使用,也就是函式內部使用 二:全域性變數 在模組中使用,其在函式和類的外面定義的定義的變數。如果函式中沒有定於相同變數名的區域

Python中的屬性方法與例項屬性例項方法

class Person(object): num=10000 def __init__(self,name): self.name=name @classmethod def getNum(cls): return cls.n

【設計模式-4】工廠模式簡單工廠工廠方法抽象工廠

簡單工廠模式(Simple Factory)   簡單工廠模式(Simple Factory Pattern):又稱為靜態工廠方法(Static Factory Method)模式。在簡單工廠模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義一個類來負責建立其

python中例項方法例項屬性方法屬性靜態方法的總結

class Game(object): #歷史最高分 top_score = 0 def __init__(self,player_name): self.name = player_name @staticmethod def show

Python 中的 @staticmethod和@classmethod關鍵詞:Python/靜態方法/方法/@staticmethod/@classmethod

結合書籍,我的理解 靜態方法: 出現在類中,第 1 個引數不是例項、也不是類, 由 @staticmethod 裝飾的方法; 類方法: 出現在類中,第 1 個引數不是例項、而是類, 由 @classmethod 裝飾的方法。 class C: @staticmetho