UITableViewHeaderFooterView的使用+自己主动布局

使用UITableView的header或footer复用时,假设採用自己主动布局,你会发现有约束冲突,以下这样写能够消除约束冲突:

#import <UIKit/UIKit.h>



@interface SectionView : UITableViewHeaderFooterView



@property (nonatomic, copy) NSString *sectionTitle;



@end

#import "SectionView.h"



@interface SectionView ()

{

    UIImageView *titleBgImageView;

    UIImageView *timePonitImageView;

    UIImageView *circleImageView;

    UILabel *titleLabe;

}

@end



@implementation SectionView



// 带有复用

- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier

{

    self = [super initWithReuseIdentifier:reuseIdentifier];

    if (self) {

        [self createUI];

    }

    return self;

}





- (void)createUI

{

    titleBgImageView = [[UIImageView alloc] initForAutoLayout];

    titleBgImageView.userInteractionEnabled = NO;

    UIImage *image = [UIImage imageNamed:@"event_bottom_line"];

    image = [image stretchableImageWithLeftCapWidth:image.size.width*0.5 topCapHeight:image.size.height*0.5];

    titleBgImageView.image = image;

    [self.contentView addSubview:titleBgImageView];

    

    

    circleImageView = [[UIImageView alloc] initForAutoLayout];

    UIImage *circleImage = [UIImage imageNamed:@"event_blue1"];

    circleImage = [circleImage stretchableImageWithLeftCapWidth:circleImage.size.width*0.5 topCapHeight:circleImage.size.height*0.5];

    

    circleImageView.image = circleImage;

    [self.contentView addSubview:circleImageView];



    

    timePonitImageView = [[UIImageView alloc] initForAutoLayout];

    timePonitImageView.image = [UIImage imageNamed:@"event_write_line"];

    [self.contentView addSubview:timePonitImageView];

    

    

    titleLabe = [[UILabel alloc] initForAutoLayout];

    titleLabe.font = [UIFont systemFontOfSize:13];

    titleLabe.textColor = [UIColor whiteColor];

    titleLabe.textAlignment = NSTextAlignmentCenter;

    [circleImageView addSubview:titleLabe];

   

}



把布局代码写到这里

- (void)layoutSubviews

{

    [super layoutSubviews];

    

    [titleBgImageView autoPinEdgesToSuperviewEdgesWithInsets:UIEdgeInsetsMake(0, 0, 0, 0)];

    

    [circleImageView autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:8];

    [circleImageView autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:8];

    [circleImageView autoSetDimension:ALDimensionHeight toSize:23];

    [circleImageView autoAlignAxisToSuperviewAxis:ALAxisHorizontal];

    

    [timePonitImageView autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:16];

    [timePonitImageView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:39/2.0-4];

    [timePonitImageView autoSetDimensionsToSize:CGSizeMake(9, 23.5)];

    

    [titleLabe autoCenterInSuperview];

    [titleLabe autoSetDimension:ALDimensionWidth toSize:200];

    

}

UITableViewHeaderFooterView的使用+自己主动布局的更多相关文章

  1. IOS不用AutoLayout也能实现自己主动布局的类(3)----MyRelativeLayout横空出世

    对于IOS开发人员来说,在自己主动布局出现前仅仅能通过计算和设置frame的值来处理.这样设置位置时就会出现非常多硬编码,同一时候在屏幕旋转和不同屏幕之间适配时须要编码又一次调整位置和尺寸,我们也能够 ...

  2. iOS_ScrollView的自己主动布局

    ScrollView的自己主动布局稍显麻烦.但也是有规律可循, 下面就是仅竖向滑动的scrollView加入约束的固定做法 1.在控制器的view加入一个label.取名做anchor 2.给anch ...

  3. 他们主动布局(autolayout)环境的图像编辑器

    hi,all: 在经过了一番犹豫之后.我决定将我自己做的这个小APP的源代码发布给大家: 其出发点是和大家一起学习iOS开发.仅供学习參考之用. 之前代码是托管与gitlab 上的,今天我将其pull ...

  4. iOS 自己主动布局教程

    springs和struts的问题 你肯定非常熟悉autosizing masks-也被觉得是springs&struts模式.autosizing mask决定了当一个视图的父视图大小改变时 ...

  5. CSS3 网格布局(grid layout)基础知识 - 隐式网格自己主动布局(grid-auto-rows/grid-auto-columns/grid-auto-flow)

    网格模板(grid-template)属性及其普通写法(longhands)定义了一个固定数量的轨道.构成显式网格. 当网格项目定位在这些界限之外.网格容器通过添加隐式网格线生成隐式网格轨道. 这些隐 ...

  6. Fragment为载体可自己主动布局的CardView(GitHub上写开源项目初体验)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 开篇废话: 前些天一直在看Android5.0 的Material Desgin,里面新增 ...

  7. 【iOS开发-48】九宫格布局案例:自己主动布局、字典转模型运用、id和instancetype差别、xib反复视图运用及与nib关系

    本次九宫格案例: (1)导入app.plist和各种图片素材,方便兴许开发.实际开发中,也是如此. (2)把plist中数组导入进来. --由于本案例中app.plist终于是一个数组,数组里面是字典 ...

  8. IOS自己主动布局中的浮动布局(6)----MyFloatLayout横空出世

    https://github.com/youngsoft/MyLinearLayout 前言 在MyLayout的6大布局中,每种布局都有不同的应用场景. 且每种布局的子视图的约束机制不一样:线性布局 ...

  9. NSLayoutConstraint-代码实现自己主动布局的函数使用方法说明

    [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelat ...

随机推荐

  1. LinkNode 温度报警器视频(2016-05-15)

    文档就不发了,申请的时候说要官方首发,所以半个月后,这里就只上一个视频表表心意.

  2. Nginx中location配置[转]

    关于一些对location认识的误区 1. location 的匹配顺序是“先匹配正则,再匹配普通”. 矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”.我这么说,大家一定会反驳我 ...

  3. Python之路Day16

    主要内容:Django基础进阶之:Django 流程.Django URL.Django Views.Django Models.Django Template.Django Admin Django ...

  4. NOI 能量采集

    /** 大意: 求解 在[1,n] x, [1,m] y,之间有多少个gcd(x,y) = d d = min(n,m) 思路: 对于任意一个d 在[1,n] x, [1,m] y, gcd(x,y) ...

  5. Introduction to REST #Reprinted#

    from http://www.cnblogs.com/shanyou/archive/2012/05/12/2496959.html dudu的 HttpClient + ASP.NET Web A ...

  6. 让innerHTML方法添加到元素里的js可以被解析执行

    <!DOCTYPE html> <html> <head> </head> <body> <div id="test&quo ...

  7. struts OGNL数据标签

    OGNL对象图导航语言,类似于el表达式,strut的底层就是用这个写的在导入struts-core的时候会导入ognl.jar public class Test { public static v ...

  8. 解析LayoutSubviews

    layoutSubviews作用 layoutSubviews是对subviews重新布局.比如,我们想更新子视图的位置的时候,可以通过调用layoutSubviews方法,既可以实现对子视图重新布局 ...

  9. error: property&#39;s synthesized getter follows Cocoa naming convention for returning &#39;owned&#39; objects

    出现这样的情况,主要是属性名中包括  keyword. You can solve this by: Renaming that property: @property (strong, nonato ...

  10. windows简单杀死进程的批处理程序

    新建一个txt文档,命令为taskkill.bat,复制下面的命令保存 @echo offtaskkill /F /IM vm* /Ttaskkill /F /IM apple* /Ttaskkill ...