OC-show View for Array.count并画虚线
2018-01-12 本文已影响0人
lifeLL
摘自https://github.com/CaiWanFeng/BeautifulView
- (void)setItemsArray:(NSArray *)itemsArray {
_itemsArray = itemsArray;
UIView *lastView = nil;
for (int i = 0; i < _itemsArray.count; i ++) {
CQPickTimeAlertItem *itemView = [[CQPickTimeAlertItem alloc] init];
[self addSubview:itemView];
if (!lastView) {
itemView.frame = CGRectMake(5, 40, self.frame.size.width-10, 0);
} else {
itemView.frame = CGRectMake(5, CGRectGetMaxY(lastView.frame) + 5, self.frame.size.width-10, 0);
}
itemView.model = _itemsArray[i];
lastView = itemView;
}
// 调整自身高度
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, CGRectGetMaxY(lastView.frame)+10);
// 虚线边框
CAShapeLayer *imaginaryLine = [CAShapeLayer layer];
imaginaryLine.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
imaginaryLine.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:0].CGPath;
imaginaryLine.lineWidth = 1. / [[UIScreen mainScreen] scale];
imaginaryLine.lineDashPattern = @[@2, @2];
imaginaryLine.fillColor = [UIColor clearColor].CGColor;
imaginaryLine.strokeColor = [UIColor grayColor].CGColor;
[self.layer addSublayer:imaginaryLine];
}
- (void)layoutSubviews {
[super layoutSubviews];
[self.titleLabel sizeToFit]; //自动拿labelframe
self.titleLabel.frame = CGRectMake(0, 0, self.titleLabel.frame.size.width + 6, self.titleLabel.frame.size.height + 2);
// 设置富文本:首行缩进
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc]init];
style.firstLineHeadIndent = self.titleLabel.frame.size.width + 4;
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:self.descLabel.text];
[attrString addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, self.titleLabel.text.length)];
self.descLabel.attributedText = attrString;
self.descLabel.frame = CGRectMake(0, 0, self.frame.size.width, 30);
[self.descLabel sizeToFit];
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, CGRectGetMaxY(self.descLabel.frame));
}
suojin.png