您的当前位置:首页iOS默认页封装

iOS默认页封装

2024-12-14 来源:哗拓教育

一个app肯定是有默认页,在后台拉不到数据报错,无网络,服务器在维护中等,这些都需要默认页来展示。这里说下我是怎么来处理这块的。
首先封装这个页面:就是一个自定义的view,我是直接加到baseViewController然后默认隐藏,在网络请求失败的时候调用。
封装思路:

- (void)showLoadFailedNoticeWithAction:(SEL)action isWeb:(BOOL)isWeb;

这个方法得写在.h中。这里传了2个参数action和isweb,action是在你重新加载的时候需要用到的,isweb是我自己的webview页面自己加的处理,你们可以按需求加。

- (void)showLoadFailedNoticeWithAction:(SEL)action isWeb:(BOOL)isWeb {
    _action = action;
    if (isWeb) {
        [self netState];
    }else{
        [self netState];
        self.hidden = NO;
    }
}

这是方法实现,如果不是webViewControoler里的直接展示,因为我这里的需求是webViewControoler只需要展示服务器维护时的默认页。然后继续往下看

- (void)netState {
    AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
    switch  {
        case AFNetworkReachabilityStatusUnknown: {
            NSLog(@"未知网络");
             = [UIImage imageNamed:@"bg_wifi"];
             = @"网络出状况啦,检查后点击屏幕重试";
        }
        break;
        case AFNetworkReachabilityStatusNotReachable: {
            NSLog(@"没有网络");
             = [UIImage imageNamed:@"bg_wifi"];
             = @"网络出状况啦,检查后点击屏幕重试";
        }
        break;
        case AFNetworkReachabilityStatusReachableViaWWAN: {
            NSLog(@"手机自带网络");
             = [UIImage imageNamed:@"bg_error"];
             = @"出错啦,点击屏幕重试";
            [self serverStatus];
        }
        break;
        case AFNetworkReachabilityStatusReachableViaWiFi: {
            NSLog(@"WIFI");
             = [UIImage imageNamed:@"bg_error"];
             = @"出错啦,点击屏幕重试";
            [self serverStatus];
        }
        break;
    }
}

在有网的情况下调用了[self serverStatus]这里是拿服务端的状态,就是后台单独给的一个服务器状态的接口请求就不写出来了。
看下使用吧:(这块是写在baseViewController)

- (void)showLoadFailedNoticeWithAction:(SEL)action frame:(CGRect)frame isWeb:(BOOL)isWeb {
    if  {
         = [[KZWNetStateView alloc] initWithFrame:frame];
         = self;
        [self.view 
    }
    [self hideBGProgess];
     showLoadFailedNoticeWithAction:action isWeb:isWeb];
}
- (void)netStateViewWithAction:(SEL)action {
    [self showBGProgress];
    SuppressPerformSelectorLeakWarning([self performSelector:action withObject:nil];);
}

最后的调用:

[self showLoadFailedNoticeWithAction:@selector(loadData) frame:self.homeTableView.frame isWeb:NO];

好了,完!欢迎讨论。。。。。

哗拓教育还为您提供以下相关内容希望对您有帮助:

[iOS]分页

UICollectionView是最广泛采用的方法之一,其灵活性高。分页处理关键在于对数据的管理与展示,具体实现可参考相关文章。值得注意的是,默认页面可能不是第一页,因此需对contentoffset进行控制。UIScrollView则提供高度的定制性,通过监听滑动通知即可实现分页。自定义手势监听适用于对动画过度和体验有特殊要求的场...

有直接把HTML5网页封装成IOS应用的工具吗

两种方法,一种是“普通封装+企业签名”,一种是“免签封装”封装就是将HTML5网页封装成一个APP,安卓封装APP可以直接安装,但是ios系统对应用的安装是有限制的,非App Store下载的应用必须要做苹果签名才能成功安装,所以封装iOS应用后,还需要做一个签名。另一种是免签封装,这个就比较方便了,这个是专...

...免签版描述文件封装、网站网页WEB转换APP苹果ios/安卓apk...

提供苹果IOS和安卓双端封装服务,包含免签+防跳转浏览器+去顶部链接和不安全显示【绿标】功能。【封装所需材料】需提供软件名称(建议五个字以内)、应用图标(92*92正方形)、域名网址、启动图(1080X1920)等材料。【封装原理】通过直接调用苹果自带的Safari浏览器打开客户H5网址,实现类似Windows系统快捷...

有直接把HTML5网页封装成IOS应用的工具吗?

HBuilder算是不错的封装工具。还有很多其他的工具也可以尝试,各有特色。但封装IOS应用,有一个前提,必须有苹果开发者帐号,才能将H5封装成ios应用,并上架APPStore.注册开发者账号,最少$99.

ios文件夹在哪里

打开“文件”App,首先会看到几个默认的位置,如“我的iPhone”,这里包含了设备上的本地文件。点击屏幕底部的“浏览”按钮,可以查看按类别组织的文件,如最近项目、标签页、位置等。在“位置”下,用户还可以访问iCloud Drive、第三方云存储服务以及连接到...

系统封装,啥意思,和系统备份还原,和系统gho和系统ios啥区别?

系统封装,就是将您现在的系统保存好软件(也就是装此系统你现在电脑上的软件都在)压缩到一个iso镜像包里,解压镜像包有setup.exe,双击即可安装 备份和还原顾名思义,把现在的系统所在盘符多数是C:备份到其他盘符,这样您重装系统就可以应用还原,来还原您原来的备份 如果您的iso错打成ios,我可以...

封装app和原生的app的区别是什么

1、封装APP:又称webapp,是一种框架型APP开发模式。2、原生APP:又称Native App,开发针对苹果IOS封闭、Android开源等不同的手机操作系统用不同语言进行开发。二、优势不同 1、封装APP:开发方式拥有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部份构成。2、原生APP:可以直接对接所有...

网站免费打包如何免费快速把网站打包成APP

8.右击"web应用程序文件夹",选中属性,在属性窗口中,将DefaultDocument设置为"你的默认登录页"即"起始页",9.选中你的yousetupname工程,按右键,选中"生成";或在主菜单的"生成"中选中"生成yourSetupFileName";10.然后,在C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects...

封装app能不能上架?

比较难,现在安卓上架都是需要软著的,而申请软著是需要提交APP代码的。苹果上架就更不用说了,审核非常严格。不上架也是可以分发的,借助开发者服务平台即可分发。分发后生成下载链接和二维码,用户扫码或点击链接就可以进入下载页。

ios pushviewcontroller 为什么会卡顿

1.UIViewController的默认颜色都是透明的;2.push的时候,B页面先覆盖在A页面上面,然后A页面从又往左的移出去。综合上面两个原因导致的“卡顿”现象。请参考:网页链接

显示全文

猜你还关注