iOS
- (CGRect)updateSubviewsWithData:(NSArray *)arrayData {
if ([GlobalMembers IsArraySafe:arrayData] && ![arrayData.firstObject isKindOfClass:[NSDictionary class]]) {
DLog(@"arrayData member type error, %s", __func__);
return CGRectZero;
}
for (UIView *view in self.subviews) {
[view removeFromSuperview];
}
UILabel *titleLabel, *contentLabel;
CGFloat itemWidth, itemHeight;
CGSize itemSize;
CGPoint startPt = CGPointMake(0, self.viewEdge.top);
for (NSDictionary *dic in arrayData) {
// itemWidth = [GlobalMembers actStringWidth:self.fontOne text:[dic objectForKey:@"title"]];
itemSize = [GlobalMembers actStringSizeFlexibleWithFont:self.fontOne text:[dic objectForKey:@"title"]];
itemWidth = MAX(0, itemSize.width);
titleLabel = [self titleLabel];
titleLabel.frame = CGRectMake(self.viewEdge.left, startPt.y, itemWidth, 21);
titleLabel.text = [dic objectForKey:@"title"];
[titleLabel sizeToFit];
[self addSubview:titleLabel];
startPt.x = self.viewEdge.left + itemWidth;
itemHeight = [GlobalMembers actStringHeight:self.fontTwo
text:[dic objectForKey:@"content"]
stringWidth:self.frame.size.width-startPt.x-self.viewEdge.right];
itemHeight = MAX(itemHeight, 21);
contentLabel = [self contentLabel];
contentLabel.frame = CGRectMake(startPt.x, startPt.y, self.frame.size.width-startPt.x-self.viewEdge.right, itemHeight);
contentLabel.text = [dic objectForKey:@"content"];
[contentLabel sizeToFit];
[self addSubview:contentLabel];
startPt.y += itemHeight;
}
// if (self.DynamicViewOfTwoBlock) {
// self.DynamicViewOfTwoBlock(CGSizeMake(self.frame.size.width, startPt.y));
// }
CGRect newFrame = self.frame;
newFrame.size.height = startPt.y;
if (self.myDelegate && [self.myDelegate respondsToSelector:@selector(DynamicViewOfTwoLabel:viewSizeShouldChanged:)]) {
[self.myDelegate DynamicViewOfTwoLabel:self viewSizeShouldChanged:newFrame];
}
// DLog(@"=====view height:%f", self.frame.size.height);
return newFrame;
}