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. Ubuntu 15.04 Rails4.2.5 处理异常

    1. 修改: /app/controllers/application_controller.rb文件为如下样子: class ApplicationController < ActionCon ...

  2. [Swust OJ 794]--最近对问题(分治)

    题目链接:http://acm.swust.edu.cn/problem/794/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

  3. 控制台console使用MFC库函数,Cout输出CString的方法

    新建工程的时候选择:Win32 Console Application 在向导的地方勾选MFC头文件支持,确认即可 等待初始化文件完成后,VS2010会自动打开 项目名.cpp的文件 其中int _t ...

  4. QT通过IP地址定位地址(用get方法取数据)

    通过IP地址定位地址,是要通过查询数据库,如果自己做一个这样的数据库工作量就比较大,所以在网上找了一个查询IP地址的网址,通过调用这个网址查询来实现,但是这个有一定的弊端,如果没有网络或者这个网址不可 ...

  5. eclipse 部分颜色及部分字体设置

    eclipse整体代码的颜色风格可以用插件 eclipse color theme 更改. 但尽管如此,有些颜色仍不是最满意的,还需自己设计. 1. 光标选中字体的颜色,如图 一个openItem被选 ...

  6. Redhat 5.8系统安装R语言作Arima模型预测

    请见Github博客:http://wuxichen.github.io/Myblog/timeseries/2014/09/02/RJavaonLinux.html

  7. WAMP多站点配置,更改服务器端口

    修改apache.conf的配置文件 设置保存路径 原本的路径:DocumentRoot "D:/wamp/www/" 修改为自己定义的路径:D:\all_code\php 查询: ...

  8. MYSQLI - mysqli操作数据库

    <?php //模型类 class Model { //数据库连接 private $_conn = NULL; //where语句 private $_where = NULL; //表名称 ...

  9. 将 Excel 数据导入 MySql

    能承受上万数据量,速度快,并且使用了事务,不会出现某条数据错误而导致部分数据插入(要是全部成功要是一条都不成功,测试过程中没出现失败),需要的朋友可以参考下 1.NPOI 2.MySql.Data 这 ...

  10. iOS 8 强制横屏

    最近用到视频播放功能:(Vitamio, 注:在Build Setting 里面的 Other Link Flag 添加-all_load) iOS 8的屏幕旋转比较坑, 使用以下代码可以强制旋转 - ...