- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 iOS 延迟执行的方法
直接上代码:两种方法有一些底层区别,后续有时间补给大家。// 第一种[self performSelector:@selector(yourFunction) withObject:nil afterDelay:1.0];// 第二种dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)1*NSEC_PER_SEC), dispatch_get_main_queue(), ^{ //此处写执行代码 });
2022-05-09 18:53:37 857
原创 iOS UITextField使用方法
UITextField继承于UIControl,具备UIControl的相关特性和方法。UITextField是用于接受用户输入的控件,可以通过代码和xib、storyboard添加创建,具有相应的代理方法:- (void)viewDidLoad { [super viewDidLoad]; self.accountTextF.delegate = self; [self.accountTextF addTarget:self action:@selector(textCh
2022-05-08 13:36:03 512
原创 iOS NSLog使用技巧
开发调试时经常需要print一些信息做调试,当打印信息的地方多了之后设备上这些输出内容会在很大程度上影响设备性能,可以用宏来控制这些调试信息的输出。#ifdef __OBJC__ #ifdef DEBUG#define JSLog(fmt,...) NSLog((@"%s [Line %d] "fmt),__PRETTY_FUNCTION__,__LINE__,##__VA_ARGS__)#else#define JSLog(...)#endif#endif不同类型的一些打印方式
2022-05-04 13:48:24 1135
原创 iOS-UI之UIPickerView的用法以及联动崩溃的解决办法
先看一下UIPickerView样式:整体结构可以分为有几列columns数据,每列有多少行rows数据。如果是显示1列以上的情况,数据结构为1个数组+这个数组中有N个子数组的结构。和Tableview一样,使用UIPickerView需要遵守该控件的代理协议:<UIPickerViewDelegate>和<UIPickerViewDataSource>具体方法代码如下:#pragma mark - pickerview delegate、datasourc
2022-04-28 18:53:02 2326
原创 iOS自动布局代码实现NSLayout
1.首先需要设置view的属性:translatesAutoresizingMaskIntoConstraints设置为NO。因为会和Autoresizing冲突,不设置会报错。2.约束为NSLayoutConstraint类,创建一个约束对象,通过[constraintWithItem:7个参数]这个方法初始化约束对象。3.初始化中7个参数说明: 3-1:constraintWithItem:当前设置约束的对象自己。 3-2:attribute:当前设置约束...
2022-04-28 16:43:57 582
原创 iOS NSNotification通知的使用介绍
直接上代码 // 获取通知对象 NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; /* 注册监听, 1>Observer参数:是哪个对象要监听 2>selector参数:监听的对象收到通知后执行哪个方法 3>name参数:监听通知的名称,明确监听哪个类型名称的通知,可以自定义通知名称。(如果不写,则会监听发出通知对象的所有通
2022-04-26 11:37:28 747
原创 iOS--UITableView用法
UITableView的部分属性: //注册UITableView dataSource代理,需遵守<UITableViewDataSource> 协议 self.tableview.dataSource = self; //注册UITableView delegate代理,需遵守<UITableViewDelegate> 协议 self.tableview.delegate = self; //设置UITableView的行高,这里是统一
2022-04-21 11:54:34 1912
原创 iOS--UIScrollView用法
UIScrollView继承于UIView,是苹果封装的一个很常用的框架。UIScrollView主要是用来展示超过固定尺寸View的内容,可以再UIScrollView中操作上下左右滑动,两个手指放大和缩小功能。使用范围包括轮播图等,例如微信聊天列表用的是UITableview继承于UIScrollview,在固定的手机屏幕区域内滑动查看更多内容。下面就介绍一下UIScrollView具体的使用方法:创建UIScrollView的方法: UIScrollView *scrollview =
2022-04-21 10:44:18 3449
原创 iOS--状态栏的调整控制方法
在不同的需求场景中,我们会遇到把状态栏字体颜色显示为深色或者浅色,也可能会遇到需要隐藏状态栏的情况,下面就是对状态栏的一些基本操作,注意,代码是写到viewcontroller中哦。//设置状态栏的颜色-(UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleDefault;}//设置是否显示状态栏,return YES就会隐藏状态栏-(BOOL)prefersStatusBarHidden{ re
2022-04-18 21:19:54 904
原创 iOS--xib的加载过程
第一步:根据路径,搜索对应的xib文件(在根目录会生成加密的nib文件)。第二步:系统加载创建xib中的每个对象时,会根据所属类进行创建,然后根据自定义设置的属性进行赋值,并把该控件加载到父视图中。第三步:系统按照第二步的顺序加载完xib内的每个控件,返回一个数组类型对象。获取xib代码如下: //xib的文件名 NSString *xib = @"AppView"; //根据文件名查找,返回一个数组(因为一个xib内可以创建多个UIView或子类控件)
2022-04-18 17:02:09 1607
原创 iOS--UIImageView使用方法
UIImageView继承于UIView,是专门用来展示图片的控件。UIImageView的创建方法:- (instancetype)initWithImage:(nullable UIImage *)image;- (instancetype)initWithImage:(nullable UIImage *)image highlightedImage:(nullable UIImage *)highlightedImageUIImageView的部分属性://UIImageVi
2022-04-18 10:21:48 1170
原创 iOS--改变视图控件大小和坐标方法和动画
话不说多,直接上代码: //fram.size修改控件的位置大小(大小是以左上角为坐标点放大或缩小) _myButton.frame = CGRectMake(10, 10, 300, 300); //bounds.size修改控件的大小(以中心点放大或缩小,xy永远是0) _myButton.bounds = CGRectMake(0, 0, 500, 500); //center可以根据控件中心位置修改控件整体位置 _myButton.center
2022-04-17 14:57:56 1050
原创 iOS--UIButton的用法说明
一句话介绍UIButton:就是手机屏幕按钮。废话不多说,稍微有一些基础的直接看代码,让你几分钟学会用UIButton: //创建Button,默认UIButtonTypeCustom样式 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; //以下是不同的几种系同样式 typedef enum { UIButtonTypeCustom = 0,// 自定义样式,无风格
2022-04-17 11:37:50 878
原创 Object-C中NSMutableString的用法详解
NSMutableString继承与NSString,对NSString进行了扩展,使得生成的字符串对象可以修改。NSMutableString的创建:NSMutableString *string = [NSMutableString string];不可以用以下方式创建:NSMutableString *string = @"cannot create a new obj";因为,左边指针类型是可变字符串类型,而右边是NSString类型。当对象string调用NSMutable
2022-04-15 22:18:56 438
原创 Object-C中单例的特性和实现
一句话介绍单例:整个程序中,无论什么时候无论在哪个类中创建一个对象,创建时取到的对象永远是同一个对象。单例的特性:1.由于在不同位置创建的对象返回的都是同一个对象,因此,单例模式可以作为整个程序的一个共享对象,任何时候任何模块都可以操作访问该单例对象的属性。2.有人说,宏定义也可以全局共享使用。但是单例还有一个重要的特性,就是在程序运行过程中,可以根据实际需求修改单例对象的属性,而宏定义一旦定义后,整个程序运行过程中是无法修改的。单例的实现思路:Object-C中创建一个对象的时候会调用
2022-04-15 21:47:45 359
原创 Object-C中关于NSString的解释
NSString是Object-C中Fundationg框架中封装好的专门处理字符串数据,非常重要且使用频率超高的一个基础类。NSString的创建方式: NSString *firstString = @"Justin"; //第一种方式 NSString *thirdString = [NSString new]; //第二种方式 NSString *forthString = [NSString string]; //第三种方式 NSString *seco
2022-04-15 10:44:17 1334
原创 Object-C中protocol协议的简单介绍
一句话简单介绍protocol的作用:专门用来声明一些方法,某类遵守了这个协议,相当于拥有了协议中这些所有的方法的声明。创建方式:Xcold中新建OC文件,选择protocol类型,输入协议名称,点击创建,只创建一个.h文件。语法样式:@protocol sampleProtocol <NSObject>@required-(void)showFirstFunction;-(void)showSecondFunction;@optional-(void)execu
2022-04-15 09:06:02 429
原创 Object-C中的category的用法
当一个类的方法和实现过于臃肿时或想新增更多原有的类的方法,可以根据实际需求创建一个或多个category(分类)文件,其目的是方便管理和维护代码,为已有的类进行扩展方法。创建category的方法:Xcode中新建文件,选择Object-C file,file type选择category,Class选择要写那个类的分类,然后点击创建。创建完成后显示以下语法样式:@interface NSObject (test)@endcategory的局限:1.category只可
2022-04-14 14:26:49 317
原创 Object-C中@synthesize简单介绍
@synthesize通常写在.m文件中的@implementation中。用来自动生成属性的geter/seter方法。原理:@synthesize 成员属性名称 会自动生成一个带下划线的成员变量,自动生成geter和seter方法,但是,seter和geter方法中只会给自动生成的代下划线的成员变量,不会给自身属性赋值。因此,写@synthesize的时候,后边写上:@synthesize people = _people;这样就会给属性赋值了。当自己写了geter和seter方法后,如果不声.
2022-04-14 13:24:16 814
原创 Object-C中SEL方法介绍
SEL全程selector选择器,SEL为系统经过typdef定义,声明时不用加*,SEL是一个类,OC的方法都属于这个类型,方法代码存放在内存中的代码段中。OC方法存储在代码的方式:1.先创建一个SEL对象。2.把方法信息存储给SEL这个对象。3.把这个生成的SEL对象作为类对象属性,存储在类对象所在的代码段中。4.多个SEL方法的对象,以类似数组的方式存放在类对象代码段中。OC方法调用的原理:1.获取该方法的SEL对象,SEL *slelector = @selector(方
2022-04-14 13:04:27 518
原创 Object-C之初始化init构造方法
当一个类执行new方法时,背后是先执行alloc方法,在执行init方法,然后返回一个已经初始化完成的该类的对象。下面简单介绍一下init的基础内容:一、init执行的目的:1.init执行是初始化对象的方法,同时给属性赋默认值。基本类型(int float double等)会初始化为0。C指针类型,会初始化为NULL,OC指针会初始化为nil。2.init方法可以重写。重写init方法时,先调用[super init],执行父类初始化操作,父类初始化中包含了初始化isa指针等操作。由于内存
2022-04-13 10:33:23 739
原创 Object-C中NSObject指针和id指针的用法和区别
NSObject和id都属于万能指针,都可以指向任何对象。以下简单介绍一下不用用法和区别:一、NSObject类型指针由于NSObject是一切类的根类,因此,NSObject类没有其它创建对象的一些方法和属性,因此,编译器在编译时,NSObject类型指针指向的对象调用其对象方法和属性时会报错。可以用强转换来表明属于哪种类型,具体格式为:NSObject *obj = XXX; [(类名 *)obj 方法1];若“方法1”是obj对象的方法,则会执行该方法。二、id类型指针id可以指向任何
2022-04-13 10:33:04 488
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人