#import "BingChengItemViewCell.h"
#import <UIButton+WebCache.h>
staticCGRect oldframe;//用於記錄放大之前的frame
@implementation BingChengItemViewCell
- (void)awakeFromNib {
[self.bgViewsetCornerRadius:5];
}
-(void)loadContentAndImages:(MedicalPeriodDto*)periodDto
{
CGFloat height = [periodDto.remarkboundingRectWithSize:CGSizeMake(WIDTH-20,MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:15]} context:nil].size.height;
if (height <35) {
height =35;
}
UILabel *remarkLab = [[UILabelalloc]initWithFrame:CGRectMake(5,35,self.bgView.bounds.size.width-10, height)];
remarkLab.text = periodDto.remark;
remarkLab.textColor =EHMO_COLOR_GRAY3;
remarkLab.font = [UIFontsystemFontOfSize:14];
[self.bgViewaddSubview:remarkLab];
CGRect aRect, bRect, bounds =CGRectMake(2, height +35,self.bgView.bounds.size.width,10000000);
NSInteger rows = periodDto.attachments.count%3==0?periodDto.attachments.count/3:periodDto.attachments.count/3+1;
for (int i =0; i<rows; i++) {
(核心代碼)QZRectDivideWithPadding(bounds, &aRect, &bounds, 90, 10, CGRectMinYEdge);
for (int m =0; m<3; m++) {
NSInteger index = i *3 + m;
if (index >= periodDto.attachments.count) {
return;
}
(核心代碼)QZRectDivideWithPadding(aRect, &bRect, &aRect, bounds.size.width/3, 5, CGRectMinXEdge);
UploadFileDto *fileDto = [periodDto.attachmentsobjectAtIndex:index];
UIButton *button = [UIButtonbuttonWithType:UIButtonTypeCustom];
button.frame = bRect;
[buttonsd_setImageWithURL:[NSURLURLWithString:fileDto.url]forState:UIControlStateNormal];
[button addTarget:selfaction:@selector(enlargeImage:)forControlEvents:UIControlEventTouchUpInside];
[self.bgViewaddSubview:button];
}
}
}
//放大圖片
-(void)enlargeImage:(UIButton *)button{
UIWindow *window=[UIApplicationsharedApplication].keyWindow;
UIView *backgroundView=[[UIViewalloc]initWithFrame:CGRectMake(0,0, [UIScreenmainScreen].bounds.size.width, [UIScreenmainScreen].bounds.size.height)];
oldframe=[buttonconvertRect:button.boundstoView:self.contentView];
backgroundView.backgroundColor=[UIColorblackColor];
backgroundView.alpha=0;
button.tag=1;
[backgroundViewaddSubview:button];
[windowaddSubview:backgroundView];
UITapGestureRecognizer *tap=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(hideImage:)];
[backgroundViewaddGestureRecognizer:tap];
[UIViewanimateWithDuration:0.3animations:^{
button.frame=CGRectMake(0,([UIScreenmainScreen].bounds.size.height-(button.frame.size.height*[UIScreenmainScreen].bounds.size.width/button.frame.size.width+80))/2, [UIScreen mainScreen].bounds.size.width, button.frame.size.height*[UIScreenmainScreen].bounds.size.width/button.frame.size.width+80);
backgroundView.alpha=1;
}completion:^(BOOL finished) {
button.userInteractionEnabled=NO;
}];
}
//還原圖片
-(void)hideImage:(UITapGestureRecognizer*)tap{
UIView *backgroundView=tap.view;
UIButton *button=(UIButton *)[tap.viewviewWithTag:1];
[UIViewanimateWithDuration:0.3animations:^{
button.frame=oldframe;
backgroundView.alpha=0;
}completion:^(BOOL finished) {
[backgroundViewremoveFromSuperview];
[self.contentViewaddSubview:button];
button.userInteractionEnabled=YES;
}];
}
//自動排文圖片的位置(核心代碼)
void QZRectDivideWithPadding(CGRect rect,CGRect *slice,CGRect *remainder,CGFloat amount,CGFloat padding,CGRectEdge edge) {
CGRect tmpSlice;
CGRectDivide(rect, &tmpSlice, &rect, amount, edge);
if (slice) {
*slice = tmpSlice;
}
CGRectDivide(rect, &tmpSlice, &rect, padding, edge);
if (remainder) {
*remainder = rect;
}
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[supersetSelected:selectedanimated:animated];
// Configure the view for the selected state
}
@end