IOS开发-琐碎的知识点总结1

/****************** ************************

 20150826 

 1UIColor的初始化:

    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg2.jpg"]]; //将背景图片设置成颜色类型的作为背景颜色来展示。

 2_password.secureTextEntry = YES; //设置不可见文本框设置成输入不可见类型的

 3_password.alpha = 0.8;//设置透明度,很多的控件都有这个属性 alpha

 3,关于尺寸:

    [[UIScreen mainScreen] bounds] //调用这个方法会直接返回一个CGRect类型的数据

    [[UIScreen mainScreen] bounds].size.width //方法调用和 .可以混合使用

    self.view.frame  //可以通过这个获取一个控件的frame,就是尺寸,位置和大小

 4,置空文本框的时候 obj.text = @"" 或者  obj.text = nil  这两种都可以

 5,文本框放弃第一响应者的方法: resignFirstResponder  ,   [self.view endEditing],结束对这个view的编辑状态,这个view上所有的控件都会放弃第一响应者。

    下面这几个方法来自 UIResponder UIViewController继承自UIResponder,就是说,所有的控件都有这几种方法

    - (BOOL)canBecomeFirstResponder;    // default is NO  是否可以成为第一响应者

    - (BOOL)becomeFirstResponder;    //成为第一响应者

 

    - (BOOL)canResignFirstResponder;    // default is YES  是否可以放弃第一响应者

    - (BOOL)resignFirstResponder;   //放弃第一响应者

 

    - (BOOL)isFirstResponder;   //是不是第一响应者

 6view布局之间的层次关系的认识: 比如新建的一个UIView,这个view 上可以放任何的一种控件,控件上面还可以放任何的控件,比如在view上放scrolView控件,虽然这个控件占据了所有的屏幕空间,但是还是可以在被覆盖的view上放置控件,切新放置的控件会覆盖掉scrolView,比如放一个按钮,那么按钮将显示在固定的位置而不会随着scrolView滚动!

 7,页面跳转的两种方法:

    1)新建一个view对象并跳转到新创建的页面上去

        //a,跳转时候

        ScrollView *scrollView = [[ScrollView alloc] init];

        //实现页面跳转的函数,是self的一个方法, 第一个参数是要跳转到的新页面的对象,第二个是是否可以执行跳转 第三个参数是代码块

        [self presentViewController:scrollView animated:YES completion:nil];

        //b,返回时候

        //这个返回实际上是将新的view给销毁掉,调用这个view时候,原理是这个覆盖掉原来的,原来的还是存在的。

        [self dismissViewControllerAnimated:YES completion:nil];

    2)使用 UINavigationController

        UINavigationController *ng = [[UINavigationController alloc] init]; //创建这种布局的一个对象

        [ng pushViewController:mainView animated:YES]; //将第一个页面添加到这个对象上

        self.window.rootViewController = ng; //window的根视图变成UINavigationController的视图

        //返回的时候,这个视图提供了返回的按钮

 

 

 

 20150827

 1,当OC对象中包含一个结构体类型数据的时候,不能通过OC对象来直接修改成员中结构体的数值,  可以先将结构体取出来放到结构体中,再修改,然后再重新赋值。

 2,当发现程序挂掉,发生一堆错误的时候, 看错误的第一句上得  “reason”

 3,三种设置UIButton按钮的背景图片的方式和区别:

    //1 拉伸图片的效果,图片将会按照btn的大小显示出来,图片可能被拉伸或者压缩

    [_loginBtn setBackgroundImage:[UIImage imageNamed:@"btn_登录_n.png"] forState:UIControlStateNormal];  //    

    //2 保持图片原有的尺寸,不会拉伸缩小,如果按钮尺寸比图片原有尺寸大,将保持图片原有尺寸,图片放在按钮的正中央,比图片大得部分不会被覆盖;如果按钮尺寸比图片尺寸小,图片将会被压缩,(不会被拉伸)

    [_loginBtn setImage:[UIImage imageNamed:@"btn_登录_n.png"] forState:UIControlStateNormal];

    //3)  保持图片原有尺寸并,平铺效果,图片不会被拉伸或者压缩,如果比图片大图片平铺整个btn,按钮比图片小,图片显示不全

    _loginBtn.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"btn_登录_n.png"]]; //

 4tag属性

    sender.tag //,通过设置这个tag属性,可以实现多个按钮执行同一个事件,在事件监听器中判断这个tag是多少以此判断是哪个按钮触发了这个事件,从而实现,不同按钮实现不同的操作。

 5, 控件的属性,framecenterbounds

    1) frame 属性是CGRect结构体类型的变量,可以通过这个属性修改控件的大小和位置。

    2center 属性是CGPoint类型的数据,其中x y表示的是控件的中心位置。可以通过这个属性改变控件的位置

    3bounds 属性是CGRect结构体类型的数据,其中 origin中的数据都是0size 中的widthheight表示控件的长宽,这个属性虽然是包含了sizezrogin信息,但是有用的信息只有size,就是说origin中的数据是没用的,通过bounds修改控件大小时候,控件会以中心点为原点来缩放。

 6NSStringFromCGRect(bounds)  通过这个方法可以直接输出结构体中的数据,这个方法是系统提供的,已经实现过得,CGPointCGSize都可以这样输出。

    NSLog(@"%@", NSStringFromCGRect(bounds));

 7,简单的动画效果:

    1)头尾式动画:

        [UIView beginAnimations:nil context:nil]; //开始动画

        [UIView setAnimationDuration:1]; //设置动画持续时间 1s

        //------------- 要实现动画效果的代码 -----------------

        img.center = center; //改变btn的坐标

 

        [UIView commitAnimations]; //提交动画

 

    2Block式动画:

        [UIView animateWithDuration:1 animations:^{ //设置动画和动画的持续时间

            //------------- 需要执行动画的代码 -------------

            imgBtn.center = center; //需要执行动画效果的代码

        }];

 8,一个UIImage对象代表一张图片,一般通过 imageNamed:方法就可以通过文件名加载项目中的图片 PNG格式的图片可以省略后缀名!!!!!)

 9UIView UIViewController的关系:

    UIView只负责对数据的展示,采集用户的输入,监听用户的事件等;其它的操作,如,每个UIView的创建、销毁、用户触发某个事件后的事件处理程序等,这些都交给UIViewControlller来处理。

 10UIView常见的方法:

    1- (void)removeFromSuperview;  //从父控件中移除当前的控件  

    2- (void)addSubview:(UIView *)view;  //在控件中添加一个控件

    3- (UIView *)viewWithTag:(NSInteger)tag;  //根据tag标示找出对应的控件一般都是子控件   [[self.view viewWithTag:4] removeFromSuperview];

 11UIView常见的属性:

    1@property(nonatomic) NSInteger tag; // default is 0  //控件的ID[标识],父控件通过ID可以找到对应的子控件,通过方法  viewWithTag:

    2@property(nonatomic) CGAffineTransform transform; //控件的变形 属性,[可以设置控件的旋转角度,比例缩放,平移等属性]

    3@property(nonatomic,readonly) UIView *superview;  //获得自己的父类控件,获得之后可以直接更改父类控件的属性  [obj superview].backgroundColor = [UIColor redColor]; 将父类控件的背景颜色改为红色

    4@property(nonatomic,readonly,copy) NSArray *subviews; //获得自己所有的子类控件。

 

        //如下例子所示,

        NSArray *arr = [NSArray arrayWithArray:self.view.subviews]; //获取self.view中所有的子控件并存放到arr数组中

        for (UIView *view in arr) { //使用for in语法遍历数组,找到每一个控件

            [view removeFromSuperview]; //找到第一个控件并将其移除

            break;

        }

 11, UIViewalphahiddenopaque属性之间的关系和区别http://blog.csdn.net/wzzvictory/article/details/10076323  

    当把UIViewalpha属性设成0,或者把hidden设成YES的时候,当前UIView和它所包含的子UIView都会变成不可见,同时也不会再响应event事件。注意这里是或的关系,即只要设置了其中的一个都会有此效果,而不管另外一个属性的值是什么。

    [self.view viewWithTag:4].hidden = ([self.view viewWithTag:4].hidden == NO) ? YES : NO;

    [self.view viewWithTag:4].alpha = 0.011; //alpha设置为 >0.01时候,就可以操作,<=0.01 , view和它的子控件将会丧失响应事件的能力

 

 

 20150828

 1UIAlertView的基本使用   TestAlertView.m 文件中。

 2, UITestField keyboardType 属性:  控制文本框唤出的键盘是什么类型的

    _userName.keyboardType = UIKeyboardTypePhonePad;

    _userName.keyboardType = UIKeyboardTypeNamePhonePad;

 3, 设置占位符的三种方式:

    1) _userName.placeholder = @"用户名";  //普通的方式

    2) _userName.attributedPlaceholder = (NSAttributedString *)str;  //使用attributedPlaceholder属性

    3[_userName setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];  //修改占位符标签的方式

  

 20150902

 1plist基本用法:

 //先新建一个地址 并从地址读取对应的数据类型到array中。

 NSString *path = [[NSBundle mainBundle] pathForResource:@"MePropertyList.plist" ofType:nil];

 _myMainViewDelegate.meCellModelArray = [NSMutableArray arrayWithContentsOfFile:path];

 2,设置view的边框:

 _myFootView.layer.borderWidth = 0.3; //设置边框的宽度

 _myFootView.layer.borderColor = [[UIColor lightGrayColor] CGColor]; //设置边框的颜色

 3,代理类设置为其它类:

    _myTableView.dataSource = _myMainViewDelegate;

    _myTableView.delegate = _myMainViewDelegate;

    以前做的都是将类的代理设置为本类,其实代理类还可以设置为其它的类,并且这么做是非常必要的,比如,一个viewcontroller中有多个tableview的时候,每个Tableview都需要设置数据源和代理,当多个tableview的代理都设置为本类的时候,就会造成调用混乱不便于编程和维护,这时候应该把不同的tableview的代理设置为不同的其它的类,这时候把与tableview相关的数据等等都定义在代理类中,这样做便于在代理类中操作数据,又能减少主view中的代码量。

    示例见:微博例子

 4Block代码块的总结见 CSDN博客

5,

  1. //2,一般情况,我们都会使用自己的颜色,一般使用下面的宏定义设置颜色:  
  2.     #define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值