• UITableViewHeaderFooterView的使用+自己主动布局


    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];
        
    }

  • 相关阅读:
    Java高并发专题之34、谷歌提供的一些好用的并发工具类
    Java高并发专题之31、等待线程完成的方式你知道几种?
    Java高并发专题之27、实战:你的接口太慢了需要优化
    Java高并发专题之36、线程6种状态详解
    Java高并发专题之32、原子操作增强类LongAdder、LongAccumulator
    Java高并发专题之35、延迟队列 DelayQueue 详解
    Java高并发专题之29、实战:一起来搞懂限流
    Java高并发专题之33、怎么演示公平锁和非公平锁
    Java高并发专题之30、JUC中的CompletableFuture
    plugin:prettier/recommended和vue/maxattributesperline冲突
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5212507.html
Copyright © 2020-2023  润新知