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. centos5.5 安装git

    查看centos版本 # cat /etc/redhat-release CentOS release 5.5 (Final) 安装git 下载: 如果有老版本的git: #git clone git ...

  2. 面向对象程序设计-C++ Stream & Template & Exception【第十五次上课笔记】

    这是本门<面向对象程序设计>课最后一次上课,刚好上完了这本<Thinking in C++> :) 这节课首先讲了流 Stream 的概念 平时我们主要用的是(1)在屏幕上输入 ...

  3. Python 2.7 学习笔记 中文处理

    首先我们在编写python代码文件时,文件本身会采用一种编码格式,如 utf-8 或 gbk 这时我们需要在python文件的开头设置文件的编码格式,以告诉编译器. 如果文件的编码格式是 utf-8, ...

  4. VC中TRACE()的用法

    个人总结:最近看网络编程是碰到了TRACE语句,不知道在哪里输出,查了一晚上资料也没找出来,今天终于在CSDN上找到了,真是个高地方啊,方法如下: 1.在MFC中加入TRACE语句 2.在TOOLS- ...

  5. Gstreamer中加入�x265编解码器

    官方的当前gstreamer版本号还不支持x265编解码,因此要加入�x265,须要自己编译.本文基于gstreamer1.3.3版进行编译安装.须要首先自己编译gstreamer1.3.3,以及对应 ...

  6. android FragmentPagerAdapter的“标准”配置

    private class ImagePagerAdapter extends FragmentPagerAdapter {           public List<ImageItem> ...

  7. MFC下的日历表

    // CalenderDlg.h : header file // #if !defined(AFX_CALENDERDLG_H__8DC8F113_2A47_45B8_8266_75CB406D68 ...

  8. PHP - __clone 对象克隆

    <?php /** * 此例子解释什么是深克隆. * 克隆学生类. */ class Student { public $name = '张三'; public $age = 12; //所属老 ...

  9. C#高级编程随笔

    1.把类创作的变量叫做对象2.类就是对象的模版3.类定义了每个对象的数据和功能4.接口不能被实例化,抽象类不能被实例化5.抽象基类可以包含非抽象方法,而接口只能包含抽象方法6.一个类可以实现多个接口7 ...

  10. 浙江工商大学15年校赛E题 无邪的飞行棋 【经典背包】

    无邪的飞行棋 Time Limit 1s Memory Limit 64KB Judge Program Standard Ratio(Solve/Submit) 15.38%(4/26) Descr ...