TuSDK 4.0.0 以上版本。
通过提供接口 TuPopupMessageInterface.h,添加自定义的 HUD 的相关文件,来替换 TuSDK 中的 TuPopupProgress,来保证 TuSDK 组件和 APP 的 HUD 指示图风格一致。程序最后的运行效果如下图所示,其中自定义 HUD 指示图文件来自开源组件 SVProgressHUD:

对比TuSDK原版HUD指示图如下:
   
首先需要将 SVProgressHUD 的相关文件拖拽进工程,分别是 SVProgressHUD.h,SVProgressHUD.m 和 SVProgressHUD.bundle 文件效果图如下:

TuSDK 内部是根据 TuPopupMessageInterface.h 内提供的方法进行调用的,提供的方法代码如下:
#import <UIKit/UIKit.h>
/**
 *  进度信息提示接口
 */
@protocol TuPopupMessageInterface <NSObject> 
/**
 * 显示信息
 *
 * @param status 信息
 *            
 */
-(void)setStatus:(NSString *)status;
/**
 * 显示信息 并自动关闭
 *
 * @param message
 *            信息
 */
-(void)showToast:(NSString *)message;
/**
 * 显示组件从 iCloud 加载图片时的进度信息
 *
 * @param progress 进度
 *            
 * @param status 信息
 *            
 */
-(void)showProgress:(float)progress status:(NSString *)status;
/**
 * 显示成功信息 并自动关闭
 *
 * @param status 信息
 *            
 */
-(void)showSuccess:(NSString *)status;
/**
 * 显示错误信息 并自动关闭
 *
 * @param status 信息
 *             
 */
-(void)showError:(NSString *)status;
/**
 * 使用动画关闭
 */
-(void)dismiss;
@end
#import <Foundation/Foundation.h>
#import <TuViews/TuViews.h>
@interface SVProgressHUDMessage : NSObject<TuPopupMessageInterface>
@end
SVProgressHUDMessage.h 的代码中需要注意的有两点:
SVProgressHUDMessage.m 代码如下:
#import "SVProgressHUDMessage.h"
#import "SVProgressHUD.h"
@implementation SVProgressHUDMessage
/**
 * 显示信息
 *
 * @param status 信息
 *            
 */
-(void)setStatus:(NSString *)status;
{
    [SVProgressHUD showWithStatus:status];
}
/**
 * 显示信息 并自动关闭
 *
 * @param message
 *            信息
 */
-(void)showToast:(NSString *)message;
{
}
/**
 * 显示组件从iCloud同步加载图片时的进度信息,不建议去除
 *
 * @param progress 进度
 *            
 * @param status 信息
 *            
 */
-(void)showProgress:(float)progress status:(NSString *)status;
{
    [SVProgressHUD showProgress:progress status:status];
}
/**
 * 显示成功信息 并自动关闭
 *
 * @param status 信息
 *            
 */
-(void)showSuccess:(NSString *)status;
{
    [SVProgressHUD showSuccessWithStatus:status];
}
/**
 * 显示错误信息 并自动关闭
 *
 * @param status 信息
 *            
 */
-(void)showError:(NSString *)status;
{
    [SVProgressHUD showErrorWithStatus:status];
}
/**
 * 使用动画关闭
 */
-(void)dismiss;
{
    [SVProgressHUD dismiss];
}
@end
SVProgressHUDMessage.m 的代码中需要注意的地方有两点:
导入 SVProgressHUD 头文件 #import "SVProgressHUD.h"
按照接口中提供的方法调用 SVProgressHUD 中对应的方法
如使用过程中需求完全不出现 HUD 指示图 ,需要将 SVProgressHUDMessage.m 中的方法都留空
最后需要对自定义的 HUD 的方法进行调用,自定义 HUD 文件的调用要在 TuSDK 初始化时进行调用,否则依然会调用 TuSDKPregressHUD 文件,代码如下:
#import "SVProgressHUDMessage.h"
#import <TuSDKGeeV1/TuSDKGeeV1.h>
@interface DemoRootViewController ()<DemoRootViewDelegate, TuSDKFilterManagerDelegate>
/**
 *  覆盖控制器视图
 */
@property (nonatomic, retain) DemoRootView *view;
/**
 *  进度信息提示!!!!!!!!!!!!!!!!这里很重要!!!!!!!!!!!!!!!!!!
 */
@property (nonatomic, retain) id<TuSDKICMessageHubInterface> messageHub;
@end
- (void)viewDidLoad {
    [super viewDidLoad];
    // sdk 统计代码,请不要加入您的应用
    [TuSDKTKStatistics appendWithComponentIdt:tkc_sdkComponent];
    self.title = NSLocalizedString(@"app_name", @"TuSDK 涂图");
    // 启动GPS
    [TuSDKTKLocation shared].requireAuthor = YES;
    /**
     * !!!!!!!!!!!!!!特别提示信息要!!!!!!!!!!!!!!!!!
     * 在此进行赋值
     *  
     * 
     */
    // 初始化自己定义的 HUD,替换掉 SDK 自带的 TuSDKProgressHUD。
    [TuViews shared].messageHub = [[SVProgressHUDMessage alloc]init];
在工程中 Pods 的 TuSDK.strings 文件中字段进行修改可以改变 HUD 指示图上的文字提示

完成了以上步骤就可以对 TuSDK 的内部的 HUD 文件进行替换,来使用自定义 HUD 文件,达到风格一致的目的。
如果需求完全去除 TuSDK 中的 HUD 指示图,需要将协议中的四个方法留空,TuSDK 中的 HUD 等待指示图就会完全去除。
方法中关于现实进度信息的方法是显示 iCloud 同步的图片加载进度,是否去除需慎重考虑,如果去除在加载图片时将会没有进度显示以免造成不好的用户体验。
                ©2019-2025 TUTUCLOUD. All Rights Reserved. 杭州元凡视觉智能科技有限公司 | 浙ICP备14040447号-1 | 
浙公网安备33010602001649号