![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios
文章平均质量分 63
杨周龙
这个作者很懒,什么都没留下…
展开
-
IOS 多层级路由导航控制器 NavigationControoller 实现路由切换
IOS 导航控制器分为多层级导航控制器naviagtionController 和平行分栏控制器 UITabBar(底部切换栏)。IOS导航控制器是什么呢?其实就是我们web的路由切换功能,只不过在app开发切换是ViewController。什么是导航控制器 NavigationController ?NavigationController 是继承ViewController实现的,我们可以理解为一个具有切换视图并保存视图栈记录的一个视图控制器,在开发中我们应该如何使用呢?那么Navigatio.原创 2021-01-27 21:14:17 · 559 阅读 · 0 评论 -
IOS中的事件响应链,事件冒泡机制基本了解
本文主要讲解IOS中事件响应链,即事件冒泡机制。做过web开发的同学应该知道js事件冒泡是从主响应元素一层一层的向父级冒泡事件,在ios亦是如此,但是不同是ios中,如果冒泡链中有一方对事件进行响应处理后会截止后续对冒泡行为不同于js会继续往父级冒泡。事件响应流程图图中我们可以看到如果UIViewController处理了事件响应,那么就会截止事件对冒泡。下面我用代码来验证一下。// 验证ios事件响应链 UITapGestureRecognizer* _tap_1 = [[UITap.原创 2021-01-17 16:10:39 · 550 阅读 · 0 评论 -
Xcode11 后Appdelegate自定义UIWindow对象失败详解。
在Xcode11前我们可以在AppDelegate的钩子didFinishLaunchingWithOptions进行自定义UIWindow对象。但是Xcode11后自定义UIWindow会报错无法启动APP。是因为iOS13中AppDelegate的职责发生了改变: iOS13之前,AppDelegate全权处理App生命周期和UI生命周期;iOS13之后,AppDelegate的职责是: 1、处理 App 生命周期 2、新的 Scene Session 生命周期 那UI的生命周期交给新增的Scen.原创 2021-01-16 16:26:57 · 1149 阅读 · 0 评论 -
IOS 定义手势监听器详解,利用 UIGestureRecognizer 进行捏合、旋转、平移、点击、长按手势事件响应
IOS中我们可以通过UITouch进行触摸事件监听,但是UITouch实现捏合、旋转、长按等手势事件监听非常麻烦。IOS中提供 UIGestureRecognizer 的子类帮我们简洁等实现捏合、旋转等特殊手势监听。并且一个视图可添加多个不同等手势监听器。开启userInteractionEnabledIOS 中UIView 默认是不可响应事件的,我们需要开启 userInteractionEnabled 方可进行事件响应。下面代码中我们创建了一个图片视图,并且开始事件响应。UIView 通过 a.原创 2021-01-02 17:39:02 · 4000 阅读 · 0 评论 -
IOS UITouch 触摸事件,UIResponder 的作用
IOS 中事件响应皆是通过UIResponder。我们可以执行UIResponder协议响应事件。这里我们用UIViewController做示例,UIViewController默认实现UIResponder协议。// UIViewController.m- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { NSLog(@"屏幕被手指按下了"); // 获取手指列表 .原创 2020-12-24 13:53:35 · 333 阅读 · 0 评论 -
IOS UIScrollView 滚动视图的使用和文档
UIScrollView 是一个可滚动的视图列表,在app中非常常见。下面简单的介绍一下UIScrollView 的用法。可实现代理UIScrollViewDelegate// 实例化UIScrollView UIScrollView* _scrollView = [[UIScrollView alloc] init]; // 获取屏幕大小 UIScreen* screen = [UIScreen mainScreen]; // 设置滚动视图大小 _scrollVie.原创 2020-12-22 00:10:42 · 283 阅读 · 0 评论 -
OC 中NSString与NSString 的比较
OC 中 字符串是一个对象,所以不能使用 == 进行比较是否相等。因为两个字符串的内存地址可能不一样,但是内容一样。所以我们要使用其他方法进行比较运算。isEqualToStringif ([@"2121" isEqualToString:@"2121"]) { NSLog(@"一致");}...原创 2020-12-20 22:40:56 · 409 阅读 · 0 评论 -
IOS 单行文本输入框 UITextField 使用
UITextField 继承 UIControl 类,只支持单行输入和显示,可输入密码类型。支持实现代理 UITextFieldDelegate属性名称类型说明默认值textNSString文本输入值textColorUIColor文本颜色UIFontUIFont文本大小textAlignmentNSTextAlignment文本方向NSLeftTextAlignmentborderStyleUITextBorderStyle.原创 2020-12-20 21:31:52 · 759 阅读 · 2 评论 -
IOS 模态弹窗与操作版使用 UIAlertController
UIAlertController 的使用与UIAlerView 非常不同,它实际上是把弹窗内容与显示方式、按钮列表、分离。实现起来非常简单。如下原创 2020-12-20 20:16:09 · 591 阅读 · 0 评论 -
IOS ActivityIndicator 活动指示器使用
IOS中活动指示器的使用非常简单。UIActivityIndicatorView* _activity = [[UIActivityIndicatorView alloc] init]; // 设置位置 _activity.frame = CGRectMake(180, 100, 80, 80); // 设置菊花样式 [_activity setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleLarge];.原创 2020-12-20 13:52:48 · 443 阅读 · 0 评论 -
OC 中数字转字符串和浮点数转整数等转换
浮点数转字符串float value = 0.2;NSString* text = [[NSString alloc] initWithFormat:@"%f", value];整数转字符串int value = 10;NSString* text = [[NSString alloc] initWithFormat:@"%d", value];NSInteger 转字符串NSInteger value = 10;NSString* text = [[NSString alloc] in原创 2020-12-19 17:43:12 · 909 阅读 · 1 评论 -
IOS 开发 UIProgress 和 UISlidre 进度条和滑动条组件
进度条和滑动条组件非常常见,在ios中进度条组件是无法响应事件的。滑动条可响应事件。但是这两个组件均不可设置高度,可设置x,y,width进度条属性名称类型说明默认值progressViewStyleUIProgressViewStyle进度条样式UIProgressViewStyleDefaultprogressfloat进度条的值, 0~10progressTintColorUIColor进度条的激活颜色trackTintColorU.原创 2020-12-19 16:11:25 · 734 阅读 · 1 评论 -
IOS UISwitch 组件的使用
UISwtch 在许多场景中会使用到,通常用来坐设置开关等行为。下面我们来看一下IOS 中 UISwitch 等用法UISwitch* _switch = [[UISwitch alloc] init]; // 设置状态和开启动画 [_switch setOn:NO animated:YES]; // 设置开启状态颜色 [_switch setOnTintColor: [MyUI getThemeColor]]; // 设置位置 _switch.fram.原创 2020-12-19 14:55:28 · 608 阅读 · 1 评论 -
IOS 定时器 NSTimer
定时器对象,在OC中,定时器对象是NSTimer类型//ViewController.h#import <UIKit/UIKit>@interface ViewController: UIViewController{ NSTimer *_timer; // 声明一个定时器对象 int _time_num;}//ViewController.m#import "ViewController.h"@implementation- (void) viewDid.原创 2020-12-13 20:00:14 · 225 阅读 · 0 评论 -
IOS UIViewController API,生命周期详解
在UIKit框架中只有一个根制图控制器。视图控制器用来管理界面和处理界面的类对象,程序启动前必须创建根视图控制器。所有视图控制器都需要自定义完成,必须继承于UIViewController 实现。xcode新创建的项目默认是通过info.plist 文件配置 main.storyboard 文件自动创建根视图ViewController。继承于UIView创建根视图控制器#import "AppDeletegate.h"...code- (void) didFinishLuanchingWith.原创 2020-12-13 15:04:21 · 178 阅读 · 0 评论 -
IOS UIWindow 和 UIScreen
通常UIWindow 与 UIScreen 是配合使用的。当我们想自定义window对象或者获取硬件屏幕大小必定会用到 UIWindow 和 UIScreenUIWindow一个APP只有一个UIWindow 对象,表示当前窗口对象。UIWindow 继承于 UIView。 通常使用Window 自定义根节点的 UIViewController。通常在 AppDelegate 的声明周期 didFinishLaunchingWithOptions 中声明UIScreen* screen = [UI.原创 2020-12-13 14:41:17 · 434 阅读 · 0 评论 -
IOS UIView 对象详解
UIView 是所有可以显示在屏幕的对象的父类,是一个矩形的对象名称类型说明默认值boundsCGRect以自己左上角为原点坐标设置位置和尺寸nilframeCGRect以父级视图点左上角为原点设置位置和尺寸niltagNSInteger当前对象点标识,可以当作idnilconterCGPoint视图的中心点,可动画niltransformCGAffineTransform动画CGAffineTransformIdentit.原创 2020-12-10 22:31:15 · 192 阅读 · 0 评论 -
IOS 代理模型
代理模式在IOS经常使用,在IOS中使用代理模式非常简单。A类文件(协议)a.h 中声明协议@protocol Button <NSObject> // 声明代理协议- (void) onClick; // 可以代理的方法- (void) onDown: (UIButton*) event; // 可以代理的方法 @end@interface a : NSObject@property(assign, nonatomic) id<a> delegate; //.原创 2020-12-09 23:03:18 · 72 阅读 · 0 评论 -
IOS UILabel组件
UILabel 是 IOS 显示文字的组件,继承与UIView属性名称类型说明默认值text@property(nullable, nonatomic,copy) NSString文字nilfont@property(null_resettable, nonatomic,strong) UIFont字体大小17textColor@property(null_resettable, nonatomic,strong) UIColor字体颜色| bla.原创 2020-12-08 22:37:36 · 199 阅读 · 0 评论 -
关于 mac m1 xcode12 编译报错 this target. for architecture arm64等问题解决方案
最近换了 mac m1 开发,xcode12在运行旧项目报错 的问题xxxx building for iOS Simulator, but linking in object file built for iOS, xxxxx for architecture arm64上谷歌、百度翻个各种答案,修改 编译结构体、修改pods配置都不行。自己瞎倒腾给解决了....非常简单##解决方案1.打开访达,选择应用程序,右键打开xcode简介选择打开ressta 即可程序完美运行...原创 2020-12-02 22:48:26 · 2892 阅读 · 2 评论