// // ICRAnnouncementDetailHeadView.m // XFFruit // // Created by Lili Wang on 15/4/15. // Copyright (c) 2015年 Xummer. All rights reserved. // #define LABEL_TEXT_COLOR [UIColor colorWithRed:0.286f green:0.549f blue:0.933f alpha:1.00f] #define CONTENT_LABEL_TEXT_COLOR [UIColor colorWithRed:0.471f green:0.471f blue:0.478f alpha:1.00f] #define MYSELF_BACKGROUND_COLOR [UIColor colorWithRed:0.941f green:0.965f blue:0.996f alpha:1.00f] #define LIMITED_SIZE CGSizeMake( self.width/2 , CREAT_BY_LABEL_HEIGHT ) #define TITLE_IMG_TOP_PANDING (5) #define TITLT_IMG_HEIGHT (55) #define TITLE_LABEL_HEIGHT (15) #define TITLE_LABEL_TOP_PANDING (13) #define CREAT_BY_LABEL_HEIGHT (13) #define CREAT_BY_LABEL_LEFT_PANDING (20) #define CREAT_TIME_LABEL_LEFT_PANDING (self.width/2) #define CREAT_BY_LABEL_INNER (15) #define CREAT_BY_VALUE_LABEL_INNER (5) #define TEXTVIEW_BOTTOM_PANDING (20) #import "ICRAnnouncementDetailHeadView.h" #import "ICRAnnocementContentView.h" #import "ICRAnnouncement.h" @interface ICRAnnouncementDetailHeadView () @property (strong, nonatomic) UIImageView *m_titleImageView; @property (strong, nonatomic) UILabel *m_titleLabel; @property (strong, nonatomic) UILabel *m_creatByLabel; @property (strong, nonatomic) UILabel *m_creatByValueLabel; @property (strong, nonatomic) UILabel *m_creatTimeLabel; @property (strong, nonatomic) UILabel *m_creatTimeValueLabel; @property (strong, nonatomic) UILabel *m_announcementContentLabel; @property (strong, nonatomic) UILabel *m_announcementContentDetail; @end @implementation ICRAnnouncementDetailHeadView - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // code [self _init]; } return self; } - (void)layoutSubviews { CGFloat fMaxW = self.width - CREAT_BY_LABEL_LEFT_PANDING; CGSize size = CGSizeMake( fMaxW , CGFLOAT_MAX ); size = [_m_titleLabel widthLimitedSizeThatFits:size]; _m_titleImageView.frame = (CGRect){ .origin.x = CREAT_BY_LABEL_LEFT_PANDING, .origin.y = TITLE_IMG_TOP_PANDING, .size.width = self.width - CREAT_BY_LABEL_LEFT_PANDING * 2, .size.height = size.height + TITLE_LABEL_TOP_PANDING * 2 }; _m_titleLabel.frame = (CGRect){ .origin.x = (_m_titleImageView.width - size.width)/2, .origin.y = (_m_titleImageView.height - size.height)/2, .size = size }; size = [_m_creatByLabel widthLimitedSizeThatFits:LIMITED_SIZE]; _m_creatByLabel.frame = (CGRect){ .origin.x = _m_titleImageView.left, .origin.y = _m_titleImageView.bottom + CREAT_BY_LABEL_INNER, .size = size }; size = [_m_creatByValueLabel widthLimitedSizeThatFits:LIMITED_SIZE]; _m_creatByValueLabel.frame = (CGRect){ .origin.x = _m_creatByLabel.left, .origin.y = _m_creatByLabel.bottom + CREAT_BY_VALUE_LABEL_INNER, .size = size }; size = [_m_creatTimeLabel widthLimitedSizeThatFits:LIMITED_SIZE]; _m_creatTimeLabel.frame = (CGRect){ .origin.x = CREAT_TIME_LABEL_LEFT_PANDING, .origin.y = _m_creatByLabel.top, .size = size }; size = [_m_creatTimeValueLabel widthLimitedSizeThatFits:LIMITED_SIZE]; _m_creatTimeValueLabel.frame = (CGRect){ .origin.x = _m_creatTimeLabel.left, .origin.y = _m_creatByValueLabel.top, .size = size }; size = [_m_announcementContentLabel widthLimitedSizeThatFits:LIMITED_SIZE]; _m_announcementContentLabel.frame = (CGRect){ .origin.x = _m_creatByLabel.left, .origin.y = _m_creatByValueLabel.bottom + CREAT_BY_LABEL_INNER, .size = size }; size = CGSizeMake( fMaxW , CGFLOAT_MAX); size = [_m_announcementContentDetail heightLimitedSizeThatFits:size]; _m_announcementContentDetail.frame = (CGRect){ .origin.x = _m_announcementContentLabel.left, .origin.y = _m_announcementContentLabel.bottom + CREAT_BY_VALUE_LABEL_INNER, .size.width = fMaxW, .size.height = size.height }; self.height = _m_announcementContentDetail.bottom + TEXTVIEW_BOTTOM_PANDING; } #pragma mark - Private Method - (void)_init { self.backgroundColor = MYSELF_BACKGROUND_COLOR; self.m_titleImageView = [[UIImageView alloc] init]; _m_titleImageView.backgroundColor = [UIColor clearColor]; _m_titleImageView.image = [[UIImage imageNamed:@"AnnounceTitleBG"] stretchableImageWithLeftCapWidth:50 topCapHeight:10]; [self addSubview:_m_titleImageView]; self.m_titleLabel = [[ICRAnnocementContentView class] creatLabelWithTextColor:[UIColor whiteColor] textFont:[UIFont boldSystemFontOfSize:14] textAlignment:NSTextAlignmentLeft]; _m_titleLabel.lineBreakMode = NSLineBreakByWordWrapping; _m_titleLabel.numberOfLines = 0; [_m_titleImageView addSubview:_m_titleLabel]; self.m_creatByLabel = [[ICRAnnocementContentView class] creatLabelWithTextColor:LABEL_TEXT_COLOR textFont:[UIFont systemFontOfSize:12] textAlignment:NSTextAlignmentLeft]; _m_creatByLabel.text = [IBTCommon localizableString:@"Publisher"]; [self addSubview:_m_creatByLabel]; self.m_creatByValueLabel = [[ICRAnnocementContentView class] creatLabelWithTextColor:CONTENT_LABEL_TEXT_COLOR textFont:[UIFont systemFontOfSize:14] textAlignment:NSTextAlignmentLeft]; [self addSubview:_m_creatByValueLabel]; self.m_creatTimeLabel = [[ICRAnnocementContentView class] creatLabelWithTextColor:LABEL_TEXT_COLOR textFont:[UIFont systemFontOfSize:12] textAlignment:NSTextAlignmentLeft]; _m_creatTimeLabel.text = [IBTCommon localizableString:@"Publish Time"]; [self addSubview:_m_creatTimeLabel]; self.m_creatTimeValueLabel = [[ICRAnnocementContentView class] creatLabelWithTextColor:CONTENT_LABEL_TEXT_COLOR textFont:[UIFont systemFontOfSize:14] textAlignment:NSTextAlignmentLeft]; [self addSubview:_m_creatTimeValueLabel]; self.m_announcementContentLabel = [[ICRAnnocementContentView class] creatLabelWithTextColor:LABEL_TEXT_COLOR textFont:[UIFont systemFontOfSize:12] textAlignment:NSTextAlignmentLeft]; _m_announcementContentLabel.text = [IBTCommon localizableString:@"Content"]; [self addSubview:_m_announcementContentLabel]; self.m_announcementContentDetail = [[ICRAnnocementContentView class] creatLabelWithTextColor:CONTENT_LABEL_TEXT_COLOR textFont:[UIFont systemFontOfSize:12] textAlignment:NSTextAlignmentLeft]; _m_announcementContentDetail.numberOfLines = 0; [self addSubview:_m_announcementContentDetail]; } #pragma mark - Public Method - (void)updateContentWithData:(ICRAnnouncement *)announcement { self.m_titleLabel.text = announcement.title ? : @""; self.m_creatByValueLabel.text = [announcement createInfo][@"operator"][@"operName"] ? : @""; self.m_creatTimeValueLabel.text = [announcement createInfo][@"time"] ? :@""; self.m_announcementContentDetail.text = announcement.content ? : @""; [self setNeedsLayout]; } @end