博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS
阅读量:5225 次
发布时间:2019-06-14

本文共 3389 字,大约阅读时间需要 11 分钟。

2015.12.23

1.tableView单组,多组数据(实现datasource协议)显示;(单组就是section=1的多组)。

2.数据显示时的性能优化:

  创建cell时设置一个id,然后每次创建前先带id去缓存池中找有没有可用的cell。如果有,修改里面的数据拿去用。如果没有,创建新的cell。

3.tableView右侧导航,实现datasource协议里的对应方法即可。

2015.12.24

1.自定义cell,就是定义一个xil文件和一个与之对应的类文件。然后使用bundle加载xil文件获得一个自定义cell对象。

2.给tableview设置header和footer(当tableview的类型为group时,每个section也有头和尾)。比如:header显示滚动广告,footer显示“加载更多”等。

3.重写awakeFormNib,当xib文件把初始化成一个对象后会调用,利用该方法可以 实现在xib所描述的view加载完毕后执行一些操作。

2015.12.25(圣诞节啊有木有...)

1.自定义高度不确定的cell,如微博;过程:

  定义一个数据model和一个记录cell内部各个子控件frame的model。controller中包含frameModel,frameModel中包含数据model(当将数据给frameModel时就可以计算各个部分的frame)。重写返回cell的方法时,创建自定义cell,将对应的frame传给cell就可以得到个性化的cell了。

2015.12.29

1.计算一段文字的长宽:

NSDictionary *attrs=@{NSFontAttributeName:font};CGSize size = [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;

2.无损拉伸图片(四周不变,只拉伸纯色部分)

UIImage *img=[UIImage imageNamed:name];UIImage *stretchedImg = [img stretchableImageWithLeftCapWidth:img.size.width*0.5 topCapHeight:img.size.height*0.5];

 其中还有resize开头的一些方法也可以做到该效果的图片拉伸。

3.键盘监听

 利用通知机制NSNotificationCenter实现监听键盘的动态,如:键盘被文本框叫出时,界面跟着上移:

- (void)viewDidLoad {    [super viewDidLoad];    self.tableView.dataSource=self;    self.tableView.delegate=self;    self.tableView.backgroundColor=[UIColor colorWithRed:224/255.0 green:224/255.0 blue:224/255.0 alpha:1];    self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone;        //添加键盘监听    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];}-(void)dealloc{    [[NSNotificationCenter defaultCenter] removeObserver:self];}-(void)keyboardWillChangeFrame:(NSNotification *)note{    CGRect keyboardFrame=[note.userInfo[UIKeyboardFrameEndUserInfoKey]CGRectValue];    CGFloat transformY=keyboardFrame.origin.y-self.view.frame.size.height;        //时间    CGFloat duration=[note.userInfo[UIKeyboardAnimationDurationUserInfoKey]floatValue];    [UIView animateWithDuration:duration animations:^{        self.view.transform=CGAffineTransformMakeTranslation(0, transformY);    }];}

4.通过文本框的属性可以设置被其叫出的键盘的一些属性,比如Return Key可以设置键盘右下角的按钮类型,还有Auto-enable Return Key可以实现文本框没有文字的时候键盘右下角按钮不可用等。另外通过成为文本框的代理来监听键盘点击的一些事件,比如:textFieldshouldReturn:当点击键盘右下角按钮时调用该方法。

2016.01.25

项目常见文件:

  info.plist:项目相关全局的设置;

  prefix.pch:其实就是一个头文件。在该头文件中定义的东西(比如宏)在项目中任何地方都可以使用,很好的一个例子就是:定义一个条件编译的宏,来控制程序中的NSLog,使其在调试的时候正常打印,在发布时就去掉。实例代码如下:

#ifdef DEBUG#define MyLog(...) NSLog(__VA_ARGS__)#else#define MyLog(...)#endif

 另外,把这些宏定义放到pch文件的#ifdef __OJBC__中,否则,如果项目中有c语言文件,可能会报错,因为有些定义只能在oc中使用,比如import包含

2016.01.26

整个程序启动的原理:

main函数->ApplicationMain函数->创建application,创建applicationDelegate,并将代理设置给application->application开启消息循环->执行代理方法applicationDidFinishLaunchingWithOptions->方法内部生成UIWindow,将window赋值给代理的window变量,创建ViewController,并将控制器设置给window的根控制器(如果有storyboard,就根据info.plist加载mainStoryBoard,创建uiwindow,创建箭头所指的主控制器,并设置给window)。

如此程序便启动了...

2016.01.28

1.处理事件一般有三种方式:①直接有事件处理方法,比如按钮点击②没有直接处理方法,试一试是不是可以成为代理,实现代理的方法③最后就是利用通知NSNotificationCenter来监听某个控件的某个消息。

想要监听文本框的内容变化就需要使用通知机制来实现,监听消息:UITextFieldTextDidChangeNotification。

2.数据存储:@存Plist:拿到沙盒路径NSHomeDirectory()。@存偏好设置:[NSUserDefaults standardUserDefaults]。@对象存储(实现NSCoding协议):存->[NSKeyedArichiver archiveRootObject..];取->[NSKeyedUnarchiver unarchiveObjectWithFile..]

转载于:https://www.cnblogs.com/dreamofei/p/5070317.html

你可能感兴趣的文章
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
MongoDB的数据库、集合的基本操作
查看>>
ajax向后台传递数组
查看>>
疯狂JAVA16课之对象与内存控制
查看>>
[转载]树、森林和二叉树的转换
查看>>
WPF移动Window窗体(鼠标点击左键移动窗体自定义行为)
查看>>
软件测试-----Graph Coverage作业
查看>>
django ORM创建数据库方法
查看>>
创建Oracle synonym 详解
查看>>
php7 新特性整理
查看>>
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
linux查看端口占用
查看>>
Sql常见面试题 受用了
查看>>
知识不是来炫耀的,而是来分享的-----现在的人们却…似乎开始变味了…
查看>>
CSS背景颜色、背景图片、平铺、定位、固定
查看>>
口胡:[HNOI2011]数学作业
查看>>
我的第一个python web开发框架(29)——定制ORM(五)
查看>>
中国剩余定理
查看>>
基础笔记一
查看>>
uva 10137 The trip
查看>>