判断某个方法是否覆写, 计算contentView宽度等 iOS开发

1.判断一个对象是否继承某个类

用cell的子类来做范例

BOOL inherited = ![templateLayoutCell isMemberOfClass:UITableViewCell.class];

2.判断某个方法是否覆写

用cell的子类来做范例

SEL selector = @selector(sizeThatFits:);

BOOL overrided = [templateLayoutCell.class instanceMethodForSelector:selector] != [UITableViewCell instanceMethodForSelector:selector];

3.计算一个cell的ContentView的宽度

此处的self是指某个具体的cell

    CGFloat contentViewWidth = CGRectGetWidth(self.frame);

    // If a cell has accessory view or system accessory type, its content view's width is smaller
    // than cell's by some fixed values.
    if (templateLayoutCell.accessoryView) {
        contentViewWidth -= 16 + CGRectGetWidth(templateLayoutCell.accessoryView.frame);
    } else {
        static const CGFloat systemAccessoryWidths[] = {
            [UITableViewCellAccessoryNone] = 0,
            [UITableViewCellAccessoryDisclosureIndicator] = 34,
            [UITableViewCellAccessoryDetailDisclosureButton] = 68,
            [UITableViewCellAccessoryCheckmark] = 40,
            [UITableViewCellAccessoryDetailButton] = 48
        };
        
        contentViewWidth -= systemAccessoryWidths[templateLayoutCell.accessoryType];
    }

更多信息查看FDTemplateLayoutCell

4. autoresizesSubviews

如果视图的autoresizesSubviews属性被设置为 NO,则该视图的直接子视图的所有自动尺寸调整行为将被忽略。类似地,如果一个子视图的自动尺寸调整掩码被设置为 UIViewAutoresizingNone,则该子视图的尺寸将不会被调整,因而其直接子视图的尺寸也不会被调整。

  • 请注意:为了使自动尺寸调整的行为正确,视图的transform属性必须设置为恒等变换;其它变换下的尺寸自动调整行为是未定义的。

自动尺寸调整行为可以适合一些布局的要求,但是如果您希望更多地控制视图的布局,可以在适当的视图类中重载layoutSubviews方法。

5.判断设备是否是横屏

#define IS_LANDSCAPE         ([[UIApplication sharedApplication] statusBarOrientation] == UIDeviceOrientationLandscapeLeft || [[UIApplication sharedApplication] statusBarOrientation] == UIDeviceOrientationLandscapeRight)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视...
    lakerszhy阅读 3,928评论 1 22
  • Core Animation基础 Core Animation 利用了硬件加速和架构上的优化来实现快速渲染和实时动...
    独木舟的木阅读 1,568评论 0 3
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 开着电脑睡不着,看到大头之前写了发给我的东西,心突然变得好柔软。蓬松的像刚烤出来的的面包。 就像是美好家庭总是相似...
    红服女夜奔阅读 494评论 0 3
  • 有一本书叫《最初的爱情,最后的仪式》。除了书中几个荒唐的片段,我也就记住了这个书名。认识一个很文艺的大学女老师,她...
    甘棠gt阅读 421评论 0 3