ios成长之每日一遍(day 2)
接着下来简单说说Label(相当于android的textview)和button的使用, 由于都是与上篇的AppDelegate一致, 所以这一篇就说说ViewController与xib的使用呗。
BIDViewController.h
#import <UIKit/UIKit.h> @interface BIDViewController : UIViewController // 类的开始 @property (weak, nonatomic) IBOutlet UILabel *statusLabel;
// a. @property是定义属性的关键字;
b. weak与strong关键字的区别, strong表示对象没有被释放则一直持有对象, 而weak指向的地址一旦被释放,这些指针都将被赋值为nil
c. atomic、nonatomic、assign、copy、retain关键字的区别, atomic是默认的设置,提供多线程安全, 但是会影响效率; nonatomic线程不安全, 提高性能; assign用于基本的数据类型; retain用于NSObject和其子类; copy复制对象到新的地址;
ps:copy 其实是建立了一个相同的对象,而 retain 不是:比如一个NSString 对象,地址为 ×,内容为 @”STR” , copy 到另外一个 NSString 之后,地址为 × ,内容相同,新的对象 retain 为 ,旧有对象没有变化; retain 到另外一个 NSString 之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的 retain 值 +。也就是说, retain 是指针拷贝, copy 是内容拷贝。
IBOutlet只是一个标记, 用于表示已在xib定义实现, xib连接时按住ctrl键, 鼠标从File's Owner拖动到在代码中标有IBOutlet的空间上, 然后在弹出框选择 - (IBAction)buttonPressed:(UIButton *)sender; // 定义操作触发的函数, IBAction也是一个标识, 标记这是触发函数, xib中在需要触发函数的控键上按住ctrl键, 鼠标从该控键拖动到File's Owner并选择相应的函数即可 @end // 类的结束
BIDViewController.m
#import "BIDViewController.h" @implementation BIDViewController
@synthesize statusLabel; // 与property一般成对出现 - (IBAction)buttonPressed:(UIButton *)sender {
NSString *title = [sender titleForState:UIControlStateNormal]; // 返回控键指定状态的title
NSString *plainText = [NSString stringWithFormat:@"%@ button pressed.", title]; // %@表示这个参数时对象类型 /*** 让部分文字变色方法 **/
NSMutableAttributedString *styledText = [[NSMutableAttributedString alloc]
initWithString:plainText];
// 这语法有点儿像json哇
NSDictionary *attributes = @{
NSFontAttributeName : [UIFont boldSystemFontOfSize:statusLabel.font.pointSize]
}; NSRange nameRange = [plainText rangeOfString:title]; [styledText setAttributes:attributes
range:nameRange];
statusLabel.attributedText = styledText;
}
@end
第二篇结束!!!
ios成长之每日一遍(day 2)的更多相关文章
- ios成长之每日一遍(day 8)
这几天都有一些任务要跟, 把ios的学习拉后, 看看要抓紧咯, 看看轮到的学习的是UITableView. BIDAppDelegate.h #import <UIKit/UIKit.h> ...
- ios成长之每日一遍(day 5)
iOS 屏幕方向那点事儿http://zhenby.com/blog/2013/08/20/talk-ios-orientation/ 针对当前的屏幕方向进行对应的代码布局 BIDViewContro ...
- ios成长之每日一遍(day 3)
今天要介绍一下更多的控键使用, 当然也会对上一篇说的控件做一个巩固, 所以这一篇涉及到的控键会包括 UIImage.UITextField.UIButton.UILabel.UISwitch.以及 U ...
- ios成长之每日一遍(day 1)
Hello world开始. 这里不讨论如何创建项目导入项目.由于趁上班时间打酱油所以也不谈细节, 只谈具体项目的实现与关键流程的解析, 只供本人实际程况使用.不喜请移驾. 首先来谈谈 AppDele ...
- ios成长之每日一遍(day 7)
今天到UITabBarController 结合 UIPickView, 这里一共有5个实现, 由浅到易. 其实在IB上面使用UITabBarController很简单, 就像平常拖控件一样拖到界面上 ...
- ios成长之每日一遍(day 6)
toolBar上的View Switcher BIDAppDelegate.h #import <UIKit/UIKit.h> @class BIDSwitchViewController ...
- ios成长之每日一遍(day 4)
今天, 主要讲四种常见的问题, 废话不多说了, 直接开始. 自动布局:这个我发现有一篇文章写得非常好, 直接表明出地http://www.cocoachina.com/applenews/devnew ...
- iOS:从头捋一遍VC的生命周期
一.介绍 UIViewController是iOS开发中的核心控件,没有它那基本上任何功能都无法实现,虽然系统已经做了所有控件的生命维护,但是,了解它的生命周期是如何管理还是非常有必要的.网上有很多教 ...
- IOS成长之路-用NSXMLParser实现XML解析
再次对xml进行解析,又有了些理解,如果有不对的地方,请给小弟指出,谢谢! <?xml version="1.0" encoding="UTF-8"?&g ...
随机推荐
- SqlServer共用表达式(CTE)With As
共用表表达式(CTE)可以看成是一个临时的结果集,可以再SELECT,INSERT,UPDATE,DELETE,MARGE语句中多次引用. 一好处:使用共用表表达式可以让语句更加清晰简练. 1.可以定 ...
- CentOS 7安装图形化界面后重启出现Initial setup of CentOS Linux 7 (core)
这是CentOS内核的初始设置页面,下面给出中文解释及操作方法. 1.CentOS Linux 7 初始设置(核心) 1)[!]许可证信息 (没有接受许可证) 请您选择[‘1’ 输入许可证信息 | ‘ ...
- 【LOJ】#2108. 「JLOI2015」装备购买
题解 换成long double才过--出题人丧心病狂卡精度 只要按照费用排序从小到大排序,一个个插入线性基,插入的时候加上费用即可 代码 #include <bits/stdc++.h> ...
- curl命令大全
curl 命令行工具的使用及命令参数说明 curl是一个开源的用于数据传输的命令行工具与库,它使用URL语法格式,支持众多传输协议,包括:HTTP.HTTPS.FTP.FTPS.GOPHER.TFTP ...
- 命名和目录接口 JNDI-The Java Naming and Directory Interface
命名和目录接口 JNDI-The Java Naming and Directory Interface JNDI (The Java Naming and Directory Interface)为 ...
- 【Ray Tracing in One Weekend 超详解】 光线追踪1-10
<Ray Tracing in One Weekend>完结篇 最近课程上机实验,封面图渲染时间也超长,所以写东西就落下了,见谅 这篇之后,我会继续<Ray Tracing The ...
- 使用djcelery发送邮件
发送邮件作为一个独立的业务模块,我们把它放到另外一个文件中,定义一个task文件,里面定义发送邮件的功能, 需要用到django.core.mail 里面的send_mail这个函数 发送邮件与网络环 ...
- python 修改文件中的内容
在python的文件操作中,是没有办法对文件中具体某行或者某个位置的内容进行局部的修改的,如果需要对文件的某一行内容进行修改,可以先将文件中的所有的内容全部读取出来,再进行内容判断,是否是需要修改的内 ...
- Web大前端面试题-Day1
1. var的变量提升的底层原理是什么? JS引擎的工作方式是:1) 先解析代码,获取所有被声明的变量:2)然后在运行.也就是说分为预处理和执行两个阶段. 变量提升:所有变量的声明语句都会被提升到代码 ...
- python语法(四)— 文件操作
前面几天学习了一写python的基础语法,也学习了分支if,循环while和for.由于之前已经做过几年的开发了,所以我们知道,许多数据来源并不是靠键盘输入到程序中去的,而是通过数据库和文件来获取到的 ...