来帮助新家找到一个可之iOS提示框解决方案.有受毒死的——才想去爱他。

旋即是相同篇带有一定笔者主观情感色彩的于文章.文章着重对比github上最为盛行的片独iOS进度提示控件
MBProgressHUD 与
SVProgressHUD的个别优劣,来提携新家找到一个入的iOS提示框解决方案.

红甚盛《权力的娱乐》已经同大红大紫地播出到了第七季,眼看着就设从头拍大结局了。在这部番茄酱和人头齐飞、便当和散伙饭同领的电视剧里,可以说凡是的确地体现了高等瓦雷利亚语里之那句至理名言:

不若对等他成功了,才想去好他

不管怎样,你总是要一个提示框.

提示框,进度提示,加载中提示等等,无论怎样,你连要提醒框来指示某个状态在后台努力开展中.一个合适的唤醒框,更多之是为此来加强用户体验.把最多之年华,用来开还核心的从;把这些不是可怜关键之行,你应有尝试着以一个熟稳定之老三正值来解决.

“凡人全有相同不胜”(只不过死法各有不同)

文:沉香红

MBProgressHUD 还是 SVProgressHUD ?

成千上万上,选择都是蛮重大之,但是连要做出选择.每个人设想的元素以及角度不同,结论可能也未同.但是,你要懂,你现在是使物色一个方便的方案来化解好的关于”提示框”的急需,而休是失去随便意义的议论和分析.我引进您利用
MBProgressHUD.
如果您只是想找一个答案,看到这里就是足足了.下面会展开部分针对比分析.有下,罗列有但选答案,总是被丁倍感异常舒服的;但是我们最终都使做出抉择,表明自己的态度.就像而可以一如既往坚持好之意,我会还深度应用
MBProgressHUD一样.下的解析不是若说明 MBProgressHUD 或 SVProgressHUD
谁好或者坏,更多之才是为着证实,我的选项可能未是顶尖的,但还是凭借点谱的!

出被砍头的——

图片 1

github 流行度: MBProgressHUD – SVProgressHUD = 2500

收目前, MBProgressHUD 的关注度也 8556, SVProgressHUD 的关注度也
6003,差额在
2500左右.github上面的流行度是非常能印证两个第三正值的对立优劣之,这就算比如各个书摊及图书的购买量和评论量总是跟均等本书的值化正相关一样!诚然,
MBProgressHUD 和 SVProgressHUD
的关注度都是可怜大的了,都早已属于异常流行的 iOS
第三方了.但是,既然自己而选一个纵深应用,肯定是关注度更强的雅!在大部分时段,我深信不疑”大家”的挑选,对自己是只是生参考价值的!

起被毒死的——

诵读写在挺丰富

接口易用性: MBProgressHUD == SVProgressHUD

以下是MBProgressHUD 和 SVProgressHUD
各自类型的github主页上,各自的中心用法示例:

[MBProgressHUD showHUDAddedTo:self.view animated:YES];
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
    // Do something...
    dispatch_async(dispatch_get_main_queue(), ^{
        [MBProgressHUD hideHUDForView:self.view animated:YES];
    });
});

[SVProgressHUD show];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // time-consuming task
    dispatch_async(dispatch_get_main_queue(), ^{
        [SVProgressHUD dismiss];
    });
});

于大多数观被,你几只有会就此到显示隐藏立点儿只顶核心的法门,所以说,尽管
SVProgressHUD 自称更加易用,但是自或当就真看不发出什么优势.

发给同一剑捅穿的——

非使当客打响了,才想去好他。

接口丰富性: MBProgressHUD >> SVProgressHUD

MBProgressHUD 同 SVProgressHUD
都支持简的快提示和文字提示.单从个别github主页上来拘禁, SVProgressHUD
似乎有所双重多的接口,但是实际并非如此.如果您生充斥了MBProgressHUD的言传身教就见面发觉,它会落实之效益而远远多于
文档示例被来底大概的 显示
隐藏.为了能于大家再次多之垂询MBProgressHUD,列有部分方法和参数常量,具体信息而参照官方示例:

/**
 * 创建一个新的HUD,并把它添加并显示到提供的视图上.与之相对应的方法是 hideHUDForView:animated:.
 *
 * @note 这个方法会设置HUD的属性`removeFromSuperViewOnHide`为YES.HUD会在隐藏时自动从父视图上移除.
 *
 * @param view 将HUD添加到此视图上.
 * @param animated YES,显示时使用当前的动画类型显示;NO,直接显示不使用动画效果.
 * @return 新创建的HUD.
 *
 * @see hideHUDForView:animated:
 * @see animationType
 */
+ (MB_INSTANCETYPE)showHUDAddedTo:(UIView *)view animated:(BOOL)animated;

/**
 * 找到并隐藏子视图最顶层的HUD.与之对应的方法是 showHUDAddedTo:animated:.
 *
 * @note 这个方法会设置HUD的属性`removeFromSuperViewOnHide`为YES.HUD会在隐藏时自动从父视图上移除.
 *
 * @param view 用来在其子视图中查找HUD的视图.
 * @param animated YES,隐藏时使用当前的动画类型显示;NO,直接隐藏不使用动画效果.
 * @return YES,如果某个HUD被找到并被移除;否则返回NO.
 *
 * @see showHUDAddedTo:animated:
 * @see animationType
 */
+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated;

/**
 * 找到子视图中所有的HUD,并隐藏.
 *
 * @note 这个方法会设置HUD的属性`removeFromSuperViewOnHide`为YES.HUD会在隐藏时自动从父视图上移除.
 *
 * @param view 用来在其子视图中查找HUD的视图.
 * @param animated YES,隐藏时使用当前的动画类型显示;NO,直接隐藏不使用动画效果.
 * @return 找到并移除的HUD的数量.
 *
 * @see hideHUDForView:animated:
 * @see animationType
 */
+ (NSUInteger)hideAllHUDsForView:(UIView *)view animated:(BOOL)animated;

/**
 * 找到并返回子视图最顶层的HUD.
 *
 * @param view 用来在其子视图中查找HUD的视图.
 * @return 子视图最顶层的HUD.
 */
+ (MB_INSTANCETYPE)HUDForView:(UIView *)view;

/**
 * 找到并返回子视图中所有的HUD.
 *
 * @param view 用来在其子视图中查找HUD的视图.
 * @return 所有找到的HUD视图(存储 MBProgressHUD 对象的数组).
 */
+ (NSArray *)allHUDsForView:(UIView *)view;

/**
 * 使用屏幕尺寸创建HUD的便利初始化方法. 
 *
 * @param window 提供边框值以初始化HUD的窗口.应该和HUD未来的父视图相同(比如,创建 HUD 后,将HUD添加到此窗口上).
 */
- (id)initWithWindow:(UIWindow *)window;

/**
 * 使用指定视图的边框尺寸创建HUD的便利初始化方法. 
 *
 * @param view 提供边框值以初始化HUD的视图.应该和HUD未来的父视图相同(比如,创建 HUD 后,将HUD添加到此视图上).
 */
- (id)initWithView:(UIView *)view;

/** 
 * 显示HUD.你需要确保调用此方法时,主线程未被其他任务阻塞,以便于更新视图.当你已经在新的线程中开始(比如,使用NSOperation或者NSURLRequest的异步请求等)执行某个任务后,再执行此方法. 
 *
 * @param animated YES,显示时使用当前的动画类型显示;NO,直接显示不使用动画效果. *
 * @see animationType
 */
- (void)show:(BOOL)animated;

/** 
 * 隐藏HUD.这个仍然会去尝试调用代理的hudWasHidden:方法.此方法是 show: 的配对方法.当你的任务完成时,再使用它. 
 *
 * @param animated YES,隐藏时使用当前的动画类型显示;NO,直接隐藏不使用动画效果.
 *
 * @see animationType
 */
- (void)hide:(BOOL)animated;

/** 
 *  延时隐藏HUD.这个仍然会去尝试调用代理的hudWasHidden:方法.此方法是 show: 的配对方法.当你的任务完成时,再使用它.  
 *  *
 * @param animated YES,隐藏时使用当前的动画类型显示;NO,直接隐藏不使用动画效果.
 * @param delay Delay in seconds until the HUD is hidden.
 *
 * @see animationType
 */
- (void)hide:(BOOL)animated afterDelay:(NSTimeInterval)delay;

/** 
 * 当在新线程执行某个后台任务时,显示HUD;任务完成时,自动隐藏HUD.
 *
 * 这个方法会处理自动释放池的相关技术细节,所以你可以安全使用它.
 *
 * @param method HUD显示期间,被执行的方法.这个方法会在一个新的线程中执行.
 * @param target HUD显示期间,被调用的方法归属的实例对象.
 * @param object 用来传递给方法的可选对象.
 * @param animated YES,HUD使用当前的 animationType 动画类型来显示或隐藏;否则,显示或隐藏时不使用动画效果.
 * animations while (dis)appearing.
 */
- (void)showWhileExecuting:(SEL)method onTarget:(id)target withObject:(id)object animated:(BOOL)animated;

#if NS_BLOCKS_AVAILABLE

/**
 * 当在后台队列中执行block时,显示HUD;并在block执行完毕后,隐藏HUD.
 *
 * @see showAnimated:whileExecutingBlock:onQueue:completionBlock:
 */
- (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block;

/**
 * 当在后台队列中执行block时,显示HUD;并在block执行完毕后,隐藏HUD.
 *
 * @see showAnimated:whileExecutingBlock:onQueue:completionBlock:
 */
- (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block completionBlock:(MBProgressHUDCompletionBlock)completion;

/**
 * 当在后台队列中执行block时,显示HUD;并在block执行完毕后,隐藏HUD.
 *
 * @see showAnimated:whileExecutingBlock:onQueue:completionBlock:
 */
- (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block onQueue:(dispatch_queue_t)queue;

/** 
 * 当在一个指定的队列中执行block时,显示HUD;block执行完毕后在主线程执行completion block;然后隐藏HUD.
 *
 * @param animated YES,HUD使用当前的 animationType 动画类型来显示或隐藏;否则,显示或隐藏时不使用动画效果.
 * @param block HUD显示期间执行的block.
 * @param queue block在此队列中执行.
 * @param completion 完成时执行的block.
 *
 * @see completionBlock
 */
- (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block onQueue:(dispatch_queue_t)queue
          completionBlock:(MBProgressHUDCompletionBlock)completion;

(这俩死法一样,也毕竟天理循环吧)

前段时间一各类情人告诉自己,之前一直追他的十分男孩现在事业做得风生水从,她思前想后非思放弃良机,于是它问我该怎么开,可以于他持续喜欢自己。

接口灵活性和可扩展性: MBProgressHUD > SVProgressHUD

率先,二者都是开放源代码的,如果起特别需求,可以了独立定制;所以这里要讨论的是
MBProgressHUD 和
SVProgressHUD自身在未改动核心代码的前提下之接口灵活性与而扩大性.同样的但是自文档来拘禁,
SVProgressHUD 表现来又多之八面玲珑,参见:
SVProgressHUD–比MBProgressHUD更好用的
iOS进度提示组件.但是真情并非如此!
MBProgressHUD
入门文档相对非常少取及其灵活性,但那提供的DEMO中较完整地出示了它们的雄强的处.单人口认为,单单允许行使自定义视图作为提供约的视图这一点,就足以让SVProgressHUD
的多头特色黯然失色;这为是本身最后决定选定 MBProgressHUD 并深深下
MBProgressHUD的关键原因.初次之外, MBProgressHUD
还支持于定义有速度长条相关的属于性.具体细节如下:

@interface MBProgressHUD : UIView
/**
 * HUD完全隐藏后执行的block.
 */
@property (copy) MBProgressHUDCompletionBlock completionBlock;

/** 
 * MBProgressHUD 操作模式. 默认是 MBProgressHUDModeIndeterminate.
 *
 * @see MBProgressHUDMode
 */
@property (assign) MBProgressHUDMode mode;

/**
 * HUD显示和隐藏时使用的动画类型.
 *
 * @see MBProgressHUDAnimation
 */
@property (assign) MBProgressHUDAnimation animationType;

/**
 * HUD处于MBProgressHUDModeCustomView模式时,显示此自定义视图(比如一个 UIImageView).
 * 最好设置自定义视图宽高为 37x37(这是HUD内建指示器的边框值).
 */
@property (MB_STRONG) UIView *customView;

/** 
 * HUD代理对象.
 *
 * @see MBProgressHUDDelegate
 */
@property (MB_WEAK) id<MBProgressHUDDelegate> delegate;

/** 
 *状态指示器下可选显示的短消息.HUD会自动调整文字的尺寸. 如果文字过长,后面会用"..."代替.
  */
@property (copy) NSString *labelText;

/** 
 * 可选显示在labelText的细节文字信息.支持多行显示.
 */
@property (copy) NSString *detailsLabelText;

/** 
 * HUD的不透明度.默认是0.8.
 */
@property (assign) float opacity;

/**
 * HUD的颜色.默认黑色.设置此值后, opacity属性的值将不再使用,因为颜色也可以设置透明度.
 */
@property (MB_STRONG) UIColor *color;

/** 
 * HUD相对于父视图中心点的水平偏移量.
 */
@property (assign) float xOffset;

/** 
 * HUD相对于父视图中心点的垂直偏移量.
 */
@property (assign) float yOffset;

/**
 * HUD边缘与HUD的元素之间(比如标签,指示器,自定义视图等)的空白距离. 
 * 默认 20.0
 */
@property (assign) float margin;

/**
 * HUD圆角半径,默认10.0.
 */
@property (assign) float cornerRadius;

/** 
 * 是否给父视图添加一个放射线样式的遮罩层.默认NO.
 */
@property (assign) BOOL dimBackground;

/*
 * 用于指定某个方法执行一段时间之后再显示HUD,以秒记.如果方法在这段时间之前就执行完成,就不再显示HUD. 
 * 这主要是为了优化耗时可能极短的任务的体验.
 * 默认值为 0.
 * 这个属性仅在可以任务的状态可以知晓时,才有作用.
 * @see taskInProgress
 */
@property (assign) float graceTime;

/**
 * HUD显示的最小时间(以秒记.)
 * 这可以避免HUD刚一显示立即又隐藏所带来的不好的用户体验.
 * 默认是 0.
 */
@property (assign) float minShowTime;

/**
 * 指示被执行的操作是否还在执行. graceTime 属性依赖于这个属性.
 * 如果你没有设置graceTime(和设置为0.0不同),这个属性没有任何作用.
 * 当使用showWhileExecuting:onTarget:withObject:animated:时,这个值会被自动设置.
 * 当直接使用show:或hide:等方法显示或隐藏HUD时,你应该手动设置taskInProgress 属性的值,以保证 graceTime 能正确发挥作用.
 */
@property (assign) BOOL taskInProgress;

/**
 * HUD隐藏时,是否从父视图中移除.
 * 默认 NO. 
 */
@property (assign) BOOL removeFromSuperViewOnHide;

/** 
 * 用于主标签的字体值.
 */
@property (MB_STRONG) UIFont* labelFont;

/**
 * 主标签颜色值.
 */
@property (MB_STRONG) UIColor* labelColor;

/**
 * 详情标签字体值.
 */
@property (MB_STRONG) UIFont* detailsLabelFont;

/** 
 * 详情标签颜色.
 */
@property (MB_STRONG) UIColor* detailsLabelColor;

/**
 * 指示器颜色.默认 [UIColor whiteColor]
 */
@property (MB_STRONG) UIColor *activityIndicatorColor;

/** 
 * 进度指示器的颜色,可选 0.0 ~ 1.0,默认0.0.
 */
@property (assign) float progress;

/**
 * HUD面板的最小尺寸.默认 CGSizeZero.
 */
@property (assign) CGSize minSize;


/**
 *  HUD面板的实际尺存,只读.
 *  你可以使用它来限制HUD的可点击区域.
 * @see https://github.com/jdg/MBProgressHUD/pull/200
 */
@property (atomic, assign, readonly) CGSize size;


/**
 * 是否强制设置HUD为正方形,默认NO.
 */
@property (assign, getter = isSquare) BOOL square;

@end


@protocol MBProgressHUDDelegate <NSObject>

@optional

/** 
 * HUD完全从屏幕中隐藏时调用此方法.
 */
- (void)hudWasHidden:(MBProgressHUD *)hud;

@end


/**
 * 一个饼状图样式的进图指示视图.
 */
@interface MBRoundProgressView : UIView 

/**
 * 进度 (0.0 to 1.0)
 */
@property (nonatomic, assign) float progress;

/**
 * 进度指示器颜色.默认 [UIColor whiteColor].
 */
@property (nonatomic, MB_STRONG) UIColor *progressTintColor;

/**
 * 进度指示的背景部分的颜色.
 * 默认白色半透(透明度0.1)
 */
@property (nonatomic, MB_STRONG) UIColor *backgroundTintColor;

/*
 * 显示模式.NO,圆形;YES,环形.默认圆形.
 */
@property (nonatomic, assign, getter = isAnnular) BOOL annular;

@end


/**
 * 一个水平进度条视图. 
 */
@interface MBBarProgressView : UIView

/**
 * 进度 (0.0 to 1.0)
 */
@property (nonatomic, assign) float progress;

/**
 * 进度条边框线的颜色.
 * 默认白色 [UIColor whiteColor].
 */
@property (nonatomic, MB_STRONG) UIColor *lineColor;

/**
 * 进度条背景色.
 * 默认是 [UIColor clearColor];
 */
@property (nonatomic, MB_STRONG) UIColor *progressRemainingColor;

/**
 * 进度的颜色.
 * 默认 [UIColor whiteColor].
 */
@property (nonatomic, MB_STRONG) UIColor *progressColor;

@end

发生受勒死的——

自劝她放弃这个想法,她了解原因,我反问怎么它之前拒绝了对方,她答应没有觉,但实际是当他连无优秀….

结论

一言以蔽之,
不管你出什么使,你总是待一个MBProgressHUD,而自实在推荐你以
MBProgressHUD.官方文档对MBProgressHUD的求实效果提的忒短小,希望会凭这篇稿子,能吃大家并还完善的认
MBProgressHUD.

再有让据爆双眼而深的——

自己说,不帅之上,他爱尔,并无是坐他莫美而喜您,但是你因他不够理想而拒绝了他,或许他现功成名就了,并不一定愿意跟汝继承恋爱。

(亲王千古)

情侣若不信教,毕竟它腿长、丰满、自信十足,于是她打算让他提供机会再度尝试一跃跃欲试。

当然,也发出老死的——

那天她打电话叫本人,说好花了重金包装了自己,为夫还特地做了双眼皮,栽了假睫毛,当他于到与它们会的途中,公司即有事,他对不起地挪了。

(要想老死,就不能不是一律各项元老!)

然它并没有泄气,于是坚持当及圣诞节前夕继续约他,此时它惦记吓了多方案,但当他接通电话经常对其说,圣诞节那天我要是陪我阴对象呀,对不起时,她立即张口结舌了,他呀时发阴对象了邪?曾经他莫是赤诚说而容易它们终身,非她不娶为?

活是,请广大穿越者切勿错过维斯特洛

而是人怎么能对友好之前程享有预言为,我们不得不当或的界定之内去设计,但是怎么会明白好前途会晤吃见谁也?

因,在权力之打里,你永远不知自己哪一样上自己会以安的计很去,即使你是最好完美之底玩家。

他并不知道自己会为成功,一夜之间身边多矣诸多女孩,那些既他热望不可即的女孩都打扮得花枝招展向外移动来,他怎么可能会见无动心呢?

当时不,知名高玩小手指头也总算杀于了编剧大人的键盘之下……

如果它还要岂会清楚都你不情愿陪的食指,后来来很多较你好好之总人口且以等候,而对方又凭什么使摘而也?

嗯不,放错图了

转载者文请与本简书作者联系,谢谢配合!

尽管指头叔的很都注定,但这一阵子确实来后,好(wu)奇(liao)的人类不由得问了:

就是单好题材(并无),身为维斯特洛首席法理学家(自封),我不怕来回应瞬间吧。

先是确定一下对的冲:

1)原著与剧集冲突之地方,以剧集为按照(毕竟是在议论剧集情节)

2)原著与剧集相容的地方,可以当论据。

高达图里的题目,大体上可分为三只有:

Q1:小指头判的是孰国?

Q2:珊莎是否有且审判小手指头?

Q3:谷地诸侯坐视不任,是否也不忠?

清理之后,我们来一一正面回答。

Q1:小指头叛的凡何人国?

A1:问出这个问题,可见提问者对“treason”一词和冰火世界观(中世纪世界观)有所误解。treason一词,意呢反。在冰火世界观里,政治生活之主心骨不是国家和臣民,而是封君与封臣。

每当首先窝的剧情被,奈德作首相,是帝王的全权代理人。小手指头是御前重臣会议的一样号,应针对国王和首相忠诚,在皇上死后,则承诺针对陛下指定的全境守护者忠诚。小手指头串通兰尼斯特家族发动政变,囚禁并害死了官的首相与全境守护者,这无异于表现即便凡是背叛,即treason。

于第三窝的剧情被,我们掌握有些手指头伙同莱莎毒死了琼恩艾林,而小手指头的封地五指半岛就当山谷。即,小手指头是琼恩艾林的封臣。故而,这同一行事吗是treason。

汇总,小手指头的“treason”,并非因我们现代人所熟悉的国家–公民政治观,而是基于冰火世界中之封君–封臣政治观。所以,小指头叛的无是皇家,而是他的封君。

Q2:珊莎是否出且审判小手指头?

A1:珊莎此时的位置是临冬城城主、受囧钦定的北境之王代理人,全权统辖北境和山谷。注意,在北境及山谷诸侯推举囧担任北境之王时,就象征北境和山谷从此处于独立状态,不再叫君临的辖。随着囧的南方下,珊莎就表示正在北境和山谷法理上之嵩世俗权威。

稍稍手指头有些许只头衔。其一,是乔佛里除的赫伦堡公和河间地总督;其二,是莱莎任命的沟谷守护者。这半只头衔于外宣誓效忠临冬城之后,要么不再遭遇肯定,要么则处于北境之王辖下。

为此,无论是从法理(珊莎是小手指头的代办封君)、地位(珊莎是最高权威),血亲复仇(珊莎是奈德的切身女儿和琼恩艾林的切身外甥女),珊莎都全产生且审判小手指头。

Q3:谷地诸侯坐视不随便,是否为不忠?

A3:在对这个题目之前,必须懂得谷地诸侯之前为何会遵守于有些手指头。小手指头的头衔是谷子地守护者,相当给“谷地摄政”,谷地领主的职称自始至终属于罗宾艾林。因此,从法理上说,小手指头向都无是山里诸侯的封君,只不过是以莱莎与罗宾对有些手指头的亲信才暂时听命于外。

于是,当珊莎指控小手指头谋杀了琼恩艾林和莱莎从此,小手指头对谷诸侯的企业主即到底失去了合法性。

而且,谷地诸侯在将囧推上王座的下就已经为临冬城效劳,这意味着这珊莎的地位还在罗宾艾林之上,更遑论小手指头了。对于珊莎的审理,谷地诸侯作为封臣自然有着从的政治义务。

老三独问题应了,用“奉承真主明光照耀,安达尔人、洛伊拿人和先民的天子,七皇家君主,拜拉席恩家族的史坦尼斯同世界”的语句总结一下就是是——

相关文章