学习笔记一:UIImage初始化方法以及点击UICollectionView和遇到点击的TableViewCell

一、UIImage初始化方法推荐(不吃内存)

直接用Imagenamed方法初始化会比上面方法吃内存,因为在苹果的官方文档中对于Imagenamed方法中描述这种方法会在系统缓存中根据指定的名字寻找图片,如果找到了就返回。如果没有在缓存中找到图片,该方法会从指定的文件中加载图片数据,并将其缓存起来,然后再把结果返回,而imageWithContentsOfFile方法只是简单的加载图片,并不会将图片缓存起来。

如果加载一张很大的图片,并且只使用一次,那么就不需要缓存这个图片。这种情况imageWithContentsOfFile比较合适——系统不会浪费内存来缓存图片。

然而,如果在程序中经常需要重用的图片,那么最好是选择imageNamed方法。这种方法可以节省出每次都从磁盘加载图片的时间。

<pre name="code" class="objc">NSString *path = [[NSBundle mainBundle]pathForResource:@"iphone_level01_cover" ofType:@"png"];

image=[UIImage  imageWithContentsOfFile:path];

 

二、在添加点击TableViewCell的背景颜色的时候

UIColor *color = [UIColor colorWithRed:84/255.0f green:189/255.0f blue:255/255.0f alpha:1.0f];
    cell.booktitle.textColor = color;
    cell.booktitle.highlightedTextColor = [UIColor whiteColor];
    cell.selectedBackgroundView = [[[UIView alloc]initWithFrame:cell.frame] autorelease];
    cell.selectedBackgroundView.backgroundColor = color;
    return cell;
在cellForRowAtIndexPath方法最后更改,能够及时显示·····具体要看TableViewDatasource的方法执行顺序,理解逻辑

主要是Hignligtcolor,这些属性是自带的,可以直接在cell初始化的时候设定,didselect方法触发的时候,已经提前设置好了,所以不需要在didselect方法里去更改


三、UIcollectionView的点击更改背景跟上述TableView一个原理

只需要在初始化的时候加上这段就可以了

只是不需要初始化selectedBackgroundView(不造为撒子,我估计TableView也可以不加,但是没试过)

UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
                cell.BackgroundView = imageView;
                UIImageView *selectImageView = [[UIImageView alloc] initWithImage:selectImage];
                cell.selectedBackgroundView = selectImageView;

四、是偷学,通知和多线程玩好了,写程序好顺!加油!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值