首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS14开发-UIViewController

介绍 UIViewController 可以理解为 App 的界面,负责管理 UIView 中显示的内容和用户的交互,主要有以下作用: 负责创建和管理 UIView。 响应用户与视图的交互。...UIViewController 的 view 的延迟加载:第一次使用的时候才会去加载,并不是创建 UIViewController 时加载。...验证:通过纯代码跳转时发现屏幕黑色且卡顿,设置颜色正常。 loadView方法 用于创建 UIViewController 的 view。...需要先监听,发送。 iOS 9 之后 NSNotificationCenter 无需手动移除观察者。 常见ViewController UIAlertController 警告(对话框)控制器。...通过栈管理 UIViewController:先进出。 pushViewController:压栈。 popViewController:出栈。

2.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

六天完成一个简单iOS App - 第四天

// 为主控制器添加titleView -(void)setUpTitlesView { UIView *titleView = [[UIView alloc]initWithFrame:...View的懒加载 从图中可以看出,点击了图片界面,只加载了图片界面,但是其他三个 视频、音频、段子控制器的View并没有加载。...scrllView的滑动代理方法中都有将子控制器View添加到scrollView即[self.scrollView addSubview:childVc.view];,那岂不是每次点击button或者滑动都会重新添加一个子控制器...CLRefreshFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreTopics)]; // 请求数据完成之后关闭刷新...UIAlertController的简单使用 iOS8 之后UIAlertController的使用非常简单,右上角更多按钮点击事件 - (IBAction)moreClick { UIAlertController

1.4K70

UI篇-UIResponder之事件传递和响应精析

UIWindow对象接受到事件开始进行最优响应视图查询的过程(逆序遍历subviews,加载的先遍历)。...UIView对象并不一定会把事件传递给每一个子view,因为UIView是通过hitTest方法来判断点击事件发生在哪个子view上面的,会采用逆序查询也就是优先查询加载的子试图,这样做也是为了优化查找速度...就像上图那样,点击了红色的View, 如果先加载蓝色View,加载红色UIView 传递过程是这样的: UIApplication对象——>UIWindow对象——>rootVC.view对象——...>redview对象 如果先加载红色View,加载蓝色UIView 传递过程是这样的: UIApplication对象——>UIWindow对象——>rootVC.view对象——>blueview对象...在一定的时间内关闭事件的传递。

2.4K30

iOS面试题-UI篇

UIView本身,更像是一个CALayer的管理器,访问它的跟绘图和坐标有关的属性,frame,bounds等,实际上内部都是访问它所在CALayer的相关属性 UIView有个layer属性,可以返回它的主...CALayer实例,UIView有一个layerClass方法,返回主layer所使用的类,UIView的子类,可以通过重载这个方法,来让UIView使用不同的CALayer来显示,: - (class...drawInRect:rect]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); // 关闭上下文...提供了一个分类UIImageView+WebCache.h, 这个分类中有一个最常用的接口sd_setImageWithURL:placeholderImage:,会在真实图片出现前会先显示占位图片,当真实图片被加载出来在替换占位图片...来继续在磁盘中查询对应的数据, 如果找到了, 就会把磁盘中的数据加载到内存中,并将图片显示出来 如果在内存和磁盘缓存中都没有找到,就会向远程服务器发送请求,开始下载图片 下载的图片会加入缓存中,并写入磁盘中

1.9K21

iOS 仿支付宝银行卡界面(支持Swift和OC)

为了实现相应的功能,仿照支付宝的银行卡卡包开发出相应的页面,页面长这个样子: 二:说明目录 创建钱包视图容器WalletView 初始化WalletView并加载钱包头部视图walletHeader 在钱包视图中重新加载卡片视图...在钱包视图中重新加载卡片视图 在钱包视图中重新加载卡片视图,在这里为了灵活修改方便使用,页面布局可以自定义,Demo中模仿支付宝页面进行设计,在CardView视图中,主要实现页面的交互等功能,具体的UI...实现在ColoredCardView中实现并继承于CardView,下面会详细说明,重新加载卡片视图方法源码如下: open func reload(cardViews: [CardView]) {...// 卡片视图 @objc var bankCardView: UIView!...导入项目使用介绍 最后介绍一下该如何在项目中导入该功能,下载Demo,将Demo中的FBYBankCard.framework文件和ColoredCardView.swift文件导入项目中,在需要加载的页面中直接引用即可

1.4K20

WKWebView 那些坑

decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler; 可以在该回调函数里拦截302请求,在request header中带上cookie并重新...不过这种方法依然解决不了页面iframe跨域请求的Cookie问题,毕竟-[WKWebView loadRequest:]只适合加载mainFrame请求。...request3,最后将加载结果返回WKWebView; 5、WKWebView 页面样式问题 在WKWebView适配过程中,我们发现部分H5页面元素位置向下偏移或被拉伸变形,追踪发现主要是H5页面高度值异常导致...空间玩吧H5小游戏有截屏分享的功能,WKWebView下通过 -[CALayer renderInContext:]实现截屏的方式失效,需要通过以下方式实现截屏功能: @implementation UIView...has finish push or present animation*/) { completionHandler(); return; } UIAlertController

17.1K21

【团队分享】手机QQ:升级iOS8.3,发图就崩,为哪般?

初步分析发现崩溃问题定位在UIView addSubview的调用,并有明确的错误信息: Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation...于是,按照如下方法修复此问题: 查找源码定位QQMarkActionSheetController_FixPos继承自UIAlertController 重写shouldAutorotate方法,返回值设为...NO 重新编译调式验证,崩溃问题果然解决。...但正所谓“福无双至,祸不单行”,我们继续深入一些隐蔽场景测试,又发现两个必现崩溃的场景: 编辑图片选择取消 关闭Wi-Fi发送短视频 分析对比,发现这两个场景有一个共同的业务逻辑,即是弹出UIAlertView...但在选择了几个调用UIAlertView的界面进行验证,发现并没有崩溃发生。

1.1K40

Flutter集成到已有iOS工程的方法步骤

install_all_flutter_pods(flutter_application_path) 最后为iOS工程执行 pod install 即完成了了flutter_module的集成 使用flutter 接下来我们介绍如何在...flutterViewController = [[FlutterViewController alloc] initWithEngine:flutterEngine nibName:nil bundle:nil]; 以UIView...的方式使用 如果想要以 UIView 的方式使用,只需要使用 UIView *myFlutterView=flutterViewController.view 即可。...遇到的问题 此次集成Flutter到iOS工程还是比较顺利的,我在集成过程中只遇到了一个问题,在完成以上集成工作运行iOS工程,出现了找不到 lib/main.dart 的报错,我百度了很久无法解决...,最后尝试关闭xcode,删除 Pods 文件夹和 Podfile.lock 文件重新执行 pod install 解决了此问题。

1.1K10

客户端骨架屏详解

一直以来,无论是Web还是iOS、Android的应用中,为了提升应用的加载等待这段时间的用户感知体验,各种技术层出不穷。其中,尤以菊花图以及由它衍生各种加载动画最为突出。...对于菊花图我们自不必多说,现在对于加载的设计体验有了比菊花加载体验更棒的方法,即大家常看到的Skeleton Screen Loading,中文叫做骨架屏。...所谓Skeleton Screen Loading,即表示在页面完全渲染完成之前,用户会看到一个占位的样式,用以描绘了当前页面的大致框架,加载完成,最终骨架屏中各个占位部分将被真实的数据替换。...很多项目中都有相关的应用,饿了么h5版本、知乎、facebook等网站中都有应用。 其效果如下图所示: ?...关闭显示占位的时候,将代理tableView的代理切回ViewController,正常显示。 特点 不需手动写占位控件,不需处理圆角等问题,占位效果与实际控件布局一致。

3.8K10

基础篇-UIApplication、UIWindow以及程序的启动流程看我就够了

UIApplication实例会被赋予一个代理对象UIApplicationDelegate,以处理应用程序的生命周期事件(比如程序启动和关闭)、系统事件(比如来电、记事项警告)等等。...一个iOS程序启动创建的第一个对象就是UIApplication对象,且只有一个(通过代码获取两个UIApplication对象,打印地址可以看出地址是相同的)。...iOS 中的状态栏设置(iOS9 中跟状态栏有关的已经过期,状态栏交给控制器UIViewController管理了) 应用界别的跳转 (openURL) 一 、设置应用程序图标右上角的红色提醒数字(QQ...# 即将失去活动状态的时候调用(失去焦点, 不可交互) - (void)applicationWillResignActive:(UIApplication *)application # 重新获取焦点...UIView执行绘画,当窗口要显示内容的时候,UIView绘画出他们的内容并附加到窗口上。

1.5K20

CALayer 图层概念二、CALayer属性二、方法

.当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕,系统会将图层拷贝到屏幕上,于是就完成了UIView得显示.换句话说,UIView... : bounds : 用于设置CALayer的宽度和高度,修改这个属性会产生缩放动画. background : 用户设置CALayer的背景色, 修改这个属性会产生背景色的渐变动画. position...可以通过动画事务 (CATransaction) 关闭默认的隐式动画效果....默认情况下禁止了 layer 动画,但是在 animation block 中又重新启用了它们 (1)bounds : 用于设置CALayer的宽度和高度,修改这个属性会产生缩放动画...:layer 的真实位置还在原来的位置 // 设置layer执行完毕动画,不要回去 anim1.removedOnCompletion = NO; // 当核心动画执行完毕不要从layer

1.4K70

理解iOS端的WebView同层组件

在iOS中加载此页面如下: @interface ViewController () @property (nonatomic, strong) WKWebView *webView; @end...三 尝试 了解了同层组件原理,我们可以在iOS平台上做下尝试,体验同层组件的渲染效果。...要处理交互问题也非常简单,首先需要先关闭WebView的拦截,在WebView加载完成,使用如下代码来找到WKContentView,并将其手势拦截关闭: - (void)handleGestrues...gesture.delaysTouchesBegan = NO; gesture.delaysTouchesEnded = NO; } } } 需要注意,这个方法的调用要在WebView加载完成...JS与原生的交互命令可以定制一套完整的协议,组件插入,组件更新,组件删除等。 传递的数据可以定义的完整丰富,例如要插入的组件类型,可能是视频,音频,地图等,各种组件在原生端的属性配置等映射。

2.5K20

六天完成一个简单iOS App - 第六天

,所以除了关闭下拉刷新,还要判断评论数组的count如果等于评论总数,则隐藏上拉加载更多 int total = [responseObject[@"total"]intValue]; if (weakSelf.latestComments.count...YES; } 上拉加载更多同样需要判断,如果已经加载全部评论则隐藏上拉加载更多,如果没有加载全部,则仅仅结束本次上拉加载即可 int total = [responseObject[@"total"]...当做载体,heardView上添加UIViewUIView上在添加cell,此时cell的setFrame不会对UIView产生任何影响。...top_cmt最热评论属性赋值回去,并将cellHeight高度重新设置为0,使其重新计算高度。...scrollView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES]; } @end 重复点击tabbarbutton和titleView中button刷新数据实现

1.3K50
领券