iOS小随笔

把平常遇到的一些小技巧和令人忽略的地方记下来,大家一起分享和共勉。

这里写2个小问题.

1)  在加载静态界面时。最明显的例子加载一个自定义cell的tableView。最好在你的自定义cell的.m文件中的init方法中加入者2行代码。

[self.layersetShouldRasterize:YES];

 [self.layersetRasterizationScale:[[UIScreen mainScreen] scale]];


当shouldRasterize设成true时,layer被渲染成一个bitmap,并缓存起来,等下次使用时不会再重新去渲染了。实现圆角本身就是在做颜色混合(blending),如果每次页面出来时都blending,消耗太大,这时shouldRasterize = yes,下次就只是简单的从渲染引擎的cache里读取那张bitmap,节约系统资源。


上面这句话是一个大牛的解释。其实是怎么回事呢?我的理解就是当shouldRasterize = yes时,系统将你的那个view做了个快照。不会再滑动的时候去alloc你view上的那些控件。对于静态的tableview,scrollview滑动的性能提升很大。至于下面那句 [self.layer setRasterizationScale:[[UIScreen mainScreenscale]]; 是针对retian屏幕的,防止滑动模糊。一般都放在一起用。


2)有时我们想通过点击一个cell上的button而知道点击的是哪个cell。

我们在定制cell时一般就是[cell addSubView: button ];


-(IBAction)clickOnCell:(id)sender

{

    UITableViewCell* cell =nil;

    if (IS_IOS_7) {

        cell = (UITableViewCell *)[[sendersuperview] superview];

    } else {

        cell = (UITableViewCell *)[sender superview];

    }

    NSIndexPath *indexPath = [unitTableViewindexPathForCell:cell];

    int section = indexPath.section;

    int row = indexPath.row;

}

看到了吗?原来点击button来获得它的父视图就好了。但是这在ios7 之前是可行的。ios7之后虽然你写的是[cell addSubView: button ],可实际上你把button 放到了cell.contentView上,所以还要在superview一下才可以获得那个cell。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值