RankDetailViewController.m 24.4 KB
Newer Older
admin's avatar
admin committed
1 2 3 4 5 6 7 8 9
//
//  RankDetailViewController.m
//  redstar
//
//  Created by admin on 15/10/29.
//  Copyright © 2015年 ZWF. All rights reserved.
//

#import "RankDetailViewController.h"
10 11
#import "RankDetailTableCell.h"
#import "RankDetailHeaderView.h"
12
#import <UIButton+WebCache.h>
13
#import "RankHeadView.h"
admin's avatar
admin committed
14 15 16 17 18 19 20
#import <MBProgressHUD.h>
#import "HttpClient.h"

#import "TaskGroup.h"
#import "TaskModel.h"
#import "TaskDetailModel.h"
#import "CheckPicViewController.h"
admin's avatar
admin committed
21
#import "CommentView.h"
admin's avatar
admin committed
22 23

#import <UIButton+WebCache.h>
admin's avatar
admin committed
24

25 26
#define kRankDetailCell @"RankDetailTableCell"

admin's avatar
admin committed
27
@interface RankDetailViewController () <UITableViewDataSource, UITableViewDelegate, RankHeadViewDelegate, UITextViewDelegate>
admin's avatar
admin committed
28
@property (nonatomic, strong) UITableView *tableView;
29

30 31
@property (nonatomic, strong) RankDetailHeaderView *rankDetailHeaderView;

admin's avatar
admin committed
32
@property (nonatomic, strong) NSMutableArray *taskData;
admin's avatar
admin committed
33
@property (nonatomic, strong) UIView *footerView;
34
@property (nonatomic, strong) NSMutableDictionary *selectedIndexes; // 存放二次展开的cell
admin's avatar
admin committed
35 36 37 38
@property (nonatomic, strong) UIButton *commentButton;

@property (nonatomic, strong) UIView *backGroundView;
@property (nonatomic, strong) CommentView *commentView;
39

admin's avatar
admin committed
40 41 42
@end

@implementation RankDetailViewController
admin's avatar
admin committed
43 44 45 46 47 48 49
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    
    self.navigationController.navigationBar.hidden = NO;
    self.tabBarController.tabBar.hidden = YES;
}
admin's avatar
admin committed
50 51 52 53 54

- (void)viewDidLoad
{
    [super viewDidLoad];
    
admin's avatar
admin committed
55
    self.view.backgroundColor = [UIColor whiteColor];
admin's avatar
admin committed
56
    
admin's avatar
admin committed
57 58 59 60 61 62 63
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
        self.edgesForExtendedLayout = UIRectEdgeNone;
        self.extendedLayoutIncludesOpaqueBars = NO;
        self.modalPresentationCapturesStatusBarAppearance = NO;
        self.navigationController.navigationBar.translucent = NO;
    }
    
admin's avatar
admin committed
64 65 66 67 68 69
    UILabel *customLab = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 30)];
    [customLab setTextColor:[UIColor whiteColor]];
    [customLab setText:@"口碑详情"];
    customLab.font = [UIFont boldSystemFontOfSize:19];
    self.navigationItem.titleView = customLab;
    
70 71 72 73 74 75 76 77
    UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    backBtn.frame = CGRectMake(0, 0, 30, 44);
    [backBtn setImage:[UIImage imageNamed:@"back_btn"] forState:UIControlStateNormal];
    [backBtn addTarget:self action:@selector(doBack:) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn];
    self.navigationItem.leftBarButtonItem = backItem;

    
78 79
    // 初始化容器
    self.selectedIndexes = [[NSMutableDictionary alloc] init];
admin's avatar
admin committed
80 81
    // 请求口碑排名详情
    [self requestRankingDetail];
admin's avatar
admin committed
82 83
    
    [self.commentButton setTitle:@"添加评论" forState:UIControlStateNormal];
admin's avatar
admin committed
84 85 86 87 88 89 90 91

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

admin's avatar
admin committed
92 93


admin's avatar
admin committed
94
#pragma mark - Private Methods
admin's avatar
admin committed
95 96 97 98 99 100

- (void)requestRankingDetail
{
    NSString *url = [NSString stringWithFormat:@"%@%@%@/%@",kRedStarURL, kInspectDetailURL, self.uuid, self.store_uuid];
    NSLog(@"url = %@" , url);
    HttpClient *httpClient = [[HttpClient alloc] initWithUrl:url];
101
    
admin's avatar
admin committed
102 103 104 105 106
    [httpClient getPraiseDetailWithParameters:nil completion:^(id response, NSError *error) {
        NSLog(@"口碑巡检明细PraiseDetail = %@", response);
        NSDictionary *dataDict = response[@"data"];
        TaskDetailModel *taskDetail = [TaskDetailModel taskDetailModelWithDict:dataDict];
        self.rankDetailHeaderView.taskDetail = taskDetail;
admin's avatar
admin committed
107
        
admin's avatar
admin committed
108 109 110 111 112 113 114 115 116 117 118
        NSArray *dataArray = dataDict[@"categories"];
        
        NSMutableArray *tgArray = [NSMutableArray array];
        for (NSDictionary *dict in dataArray) {
            TaskGroup *taskGroup = [TaskGroup taskGroupWithDict:dict];
            [tgArray addObject:taskGroup];
        }
        
        _taskData = tgArray;
        
        self.tableView.tableHeaderView = self.rankDetailHeaderView;
119 120 121
        self.rankDetailHeaderView.rankDetailView.addressLabel.text = [NSString stringWithFormat:@"%@", self.storeAddress];
        self.rankDetailHeaderView.rankDetailView.storePictures = self.storePictures;

admin's avatar
admin committed
122 123 124 125
        [self.tableView registerClass:[RankDetailTableCell class] forCellReuseIdentifier:kRankDetailCell];
        [self setupScrollView];
    }];

admin's avatar
admin committed
126
}
127

admin's avatar
admin committed
128 129
- (void)addComment:(UIButton *)sender
{
admin's avatar
admin committed
130 131 132 133 134 135 136 137 138 139 140 141
    NSArray *permissions = [[NSUserDefaults standardUserDefaults] objectForKey:@"permissions"];
    if ([permissions containsObject:@"500202"]) {
        if (!_backGroundView) {
            _backGroundView = [[UIView alloc] initWithFrame:self.view.bounds];
            UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(closeBackGroundView)];
            [_backGroundView addGestureRecognizer:tapGR];
        }
        if (!_commentView) {
            _commentView = [[CommentView alloc] init];
            _commentView.backgroundColor = [UIColor whiteColor];
        }
        _commentView.contentTextView.text = @"";
admin's avatar
admin committed
142
        _commentView.contentTextView.delegate = self;
admin's avatar
admin committed
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
        [_commentView.quitBtn addTarget:self action:@selector(closeBackGroundView) forControlEvents:UIControlEventTouchUpInside];
        [_commentView.sureBtn addTarget:self action:@selector(submitComment:) forControlEvents:UIControlEventTouchUpInside];
        [self.view insertSubview:_backGroundView aboveSubview:_tableView];
        [self.view insertSubview:_commentView aboveSubview:_backGroundView];
        
        _backGroundView.alpha = 0;
        _backGroundView.backgroundColor = [UIColor blackColor];
        
        CGRect toFrame = CGRectMake(0, self.view.frame.size.height - kCommentViewHeight, kScreenWidth, kCommentViewHeight);
        CGRect fromFrame = CGRectMake(0, kScreenHeight, kScreenWidth, kCommentViewHeight);
        
        _commentView.frame = fromFrame;
        [UIView animateWithDuration:0.3 animations:^{
            _backGroundView.alpha = 0.6;
            _commentView.frame = toFrame;
        }];

    } else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"您没有评论的权限!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
        [alert show];
admin's avatar
admin committed
163 164 165
    }
    
}
admin's avatar
admin committed
166

admin's avatar
admin committed
167 168 169 170 171 172 173 174 175 176 177 178 179 180
- (void)textViewDidBeginEditing:(UITextView *)textView
{
    [UIView animateWithDuration:0.3 animations:^{
        _commentView.frame = CGRectMake(0, self.view.frame.size.height - kCommentViewHeight - 173, kScreenWidth, kCommentViewHeight);
    }];
}

- (void)textViewDidEndEditing:(UITextView *)textView
{
    [UIView animateWithDuration:0.3 animations:^{
        _commentView.frame = CGRectMake(0, self.view.frame.size.height - kCommentViewHeight, kScreenWidth, kCommentViewHeight);
    }];
}

181 182 183 184 185 186 187 188 189 190
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if (range.location>=200) {
        return  NO;
    }
    else {
        return YES;
    }
}

admin's avatar
admin committed
191

admin's avatar
admin committed
192 193 194 195 196 197
// 提交评论
- (void)submitComment:(UIButton *)sender
{
    NSDate *date = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"YYYY-MM-dd+hh:mm:ss"];
admin's avatar
admin committed
198
    NSString *dateString = [dateFormatter stringFromDate:date];
admin's avatar
admin committed
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
    
    
    NSString *operId = [[NSUserDefaults standardUserDefaults] objectForKey:@"user_code"];
    NSString *operName = [[NSUserDefaults standardUserDefaults] objectForKey:@"user_name"];
    
    NSString *url  = [NSString stringWithFormat:@"%@%@?time=%@&operId=%@&operName=%@", kRedStarURL, kAddCommentURL , dateString , operId, operName];
    url = [url stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
    NSLog(@"url = %@", url);
    
    HttpClient *httpClient = [[HttpClient alloc] initWithUrl:url];
    NSDictionary *parameters = @{@"entityType":@"question",
                                 @"entityUuid":self.uuid,
                                 @"comment":_commentView.contentTextView.text};
    NSLog(@"parameters = %@", parameters);
    [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    [httpClient submitCommentWithParameters:parameters completion:^(id response, NSError *error) {
        NSLog(@"respo = %@, error = %@", response , error);
        if ([response[@"message"] isEqualToString:@"ok"]) {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"添加评论成功" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
            alert.delegate = self;
            [alert show];
            [MBProgressHUD hideHUDForView:self.view animated:YES];
        } else {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"添加评论失败" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
            [alert show];
            [MBProgressHUD hideHUDForView:self.view animated:YES];
        }
    }];
    
    [self closeBackGroundView];
}

- (void)closeBackGroundView
{
    CGRect fromFrame = CGRectMake(0, kScreenHeight, kScreenWidth, kCommentViewHeight);
    [UIView animateWithDuration:0.3 animations:^{
        _backGroundView.alpha = .0f;
        _commentView.frame = fromFrame;
    } completion:^(BOOL finished) {
        [_backGroundView removeFromSuperview];
        [_commentView removeFromSuperview];
    }];
}

243 244 245 246 247 248 249 250
// 返回上一页面
- (void)doBack:(UIBarButtonItem *)sender
{
    [self.navigationController popViewControllerAnimated:YES];
}

- (void)setupScrollView
{
251
    int imageCount = (int)self.storePictures.count;
admin's avatar
admin committed
252
    
253 254 255
    CGFloat marginW = 5.0;
    CGFloat imageViewW = 90 + 2 * marginW;
    CGFloat imageViewH = self.rankDetailHeaderView.rankDetailView.showScrollView.bounds.size.height - 4;
admin's avatar
admin committed
256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279
    
    if (imageCount == 0) {
        self.rankDetailHeaderView.rankDetailView.showScrollView.contentSize = CGSizeMake(4 *imageViewW, imageViewH + 4);

        for (int i = 0; i < 4; i++) {
            UIButton *button = [[UIButton alloc] init];
            [button setImage:[UIImage imageNamed:@"default_pic"] forState:UIControlStateNormal];
            button.frame = CGRectMake(i * imageViewW + 2, 2, imageViewW - 2 * marginW, imageViewH);
            [button addTarget:self action:@selector(showBigPic:) forControlEvents:UIControlEventTouchUpInside];
            [self.rankDetailHeaderView.rankDetailView.showScrollView addSubview:button];
        }
    } else {
        self.rankDetailHeaderView.rankDetailView.showScrollView.contentSize = CGSizeMake(imageCount *imageViewW, imageViewH + 4);

        for (int i = 0; i < imageCount; i++) {
            UIButton *button = [[UIButton alloc] init];
            NSDictionary *dict = (NSDictionary *)self.storePictures[i];
            NSURL *imageUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", kRedStarURL ,dict[@"fileUrl"]]];
            [button sd_setImageWithURL:imageUrl forState:UIControlStateNormal placeholderImage:[UIImage imageNamed:@"default_pic"]];
            button.frame = CGRectMake(i * imageViewW + 2, 2, imageViewW - 2 * marginW, imageViewH);
            [button addTarget:self action:@selector(showBigPic:) forControlEvents:UIControlEventTouchUpInside];
            [self.rankDetailHeaderView.rankDetailView.showScrollView addSubview:button];
        }
        
280 281 282
    }
}

admin's avatar
admin committed
283
- (void)showBigPic:(UIButton *)btn
284
{
admin's avatar
admin committed
285 286 287
    CheckPicViewController *checkVC = [[CheckPicViewController alloc] init];
    checkVC.checkImage = btn.imageView.image;
    [self.navigationController pushViewController:checkVC animated:YES];
288 289 290
}


291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308
- (void)showScrollView:(UIButton *)sender
{
    RankDetailTableCell * cell = (RankDetailTableCell *)[[sender superview] superview];
    cell.isDrop = !cell.isDrop;
    NSIndexPath * path = [self.tableView indexPathForCell:cell];
    
    [_tableView deselectRowAtIndexPath:path animated:TRUE];
    
    BOOL isSelected = ![self cellIsSelected:path];
    
    NSNumber *selectedIndex = [NSNumber numberWithBool:isSelected];
    [_selectedIndexes setObject:selectedIndex forKey:path];
    
    if (cell.isDrop) {
        [UIView animateWithDuration:0.2 animations:^{
            cell.arrowImageView.transform = CGAffineTransformIdentity;
            cell.arrowImageView.transform = CGAffineTransformMakeRotation(M_PI / 2);
        }];
admin's avatar
admin committed
309 310 311 312 313 314 315 316 317
        NSArray *imgaeUrlArray = cell.task.answerAttachments;
        NSMutableArray *urlArray = [NSMutableArray array];
        for (NSDictionary *imageUrlDict in imgaeUrlArray) {
            NSString *urlStr = [NSString stringWithFormat:@"%@%@", kRedStarURL, imageUrlDict[@"fileUrl"]];
            [urlArray addObject:urlStr];
        }
        
        CGFloat marginW = 5.0;
        CGFloat imageViewW = 90 + 2 * marginW;
318 319 320
        
        cell.scrollView = [[UIScrollView alloc] init];
        cell.scrollView.translatesAutoresizingMaskIntoConstraints = NO;
admin's avatar
admin committed
321
        cell.scrollView.contentSize = CGSizeMake((urlArray.count - 1) * imageViewW, 65);
322 323
        [cell.contentView addSubview:cell.scrollView];
        
admin's avatar
admin committed
324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347
        
        for (int i = 0; i < urlArray.count; i++) {
            UIButton *button = [[UIButton alloc] init];
            button.translatesAutoresizingMaskIntoConstraints = NO;
            NSString *urlStr = [NSString stringWithFormat:@"%@", urlArray[i]];
            NSURL *url = [NSURL URLWithString:urlStr];
            [button sd_setImageWithURL:url forState:UIControlStateNormal placeholderImage:[UIImage imageNamed:@"default_pic"]];
            [button addTarget:self action:@selector(showBigPic:) forControlEvents:UIControlEventTouchUpInside];
            [cell.scrollView addSubview:button];
            
            
            NSLayoutConstraint *urlTop = [NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:cell.scrollView attribute:NSLayoutAttributeTop multiplier:1.0 constant:0];
            [cell.scrollView addConstraint:urlTop];
            
            NSLayoutConstraint *urlLeft = [NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:cell.scrollView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:i * imageViewW];
            [cell.scrollView addConstraint:urlLeft];
            
            NSLayoutConstraint *urlWidth = [NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:imageViewW];
            [cell.scrollView  addConstraint:urlWidth];
            
            NSLayoutConstraint *urlHeight = [NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:65];
            [cell.scrollView addConstraint:urlHeight];
        }
        
348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382
        NSLayoutConstraint *someoneTop = [NSLayoutConstraint constraintWithItem:cell.scrollView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:cell.contentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:45];
        [cell.contentView addConstraint:someoneTop];
        
        NSLayoutConstraint *someoneLeft = [NSLayoutConstraint constraintWithItem:cell.scrollView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:cell.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20];
        [cell.contentView addConstraint:someoneLeft];
        
        NSLayoutConstraint *someoneRight = [NSLayoutConstraint constraintWithItem:cell.scrollView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:cell.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20];
        [cell.contentView addConstraint:someoneRight];
        
        NSLayoutConstraint *someoneHeight = [NSLayoutConstraint constraintWithItem:cell.scrollView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:65];
        [cell.contentView addConstraint:someoneHeight];
        
    } else {
        [UIView animateWithDuration:0.2 animations:^{
            cell.arrowImageView.transform = CGAffineTransformIdentity;
            cell.arrowImageView.transform = CGAffineTransformMakeRotation(0);
        }];
        
        if (cell.scrollView) {
            [cell.scrollView removeFromSuperview];
            cell.scrollView = nil;
        }
    }
    
    [_tableView beginUpdates];
    [_tableView endUpdates];
}


- (BOOL)cellIsSelected:(NSIndexPath *)indexPath {
    // Return whether the cell at the specified index path is selected or not
    NSNumber *selectedIndex = [_selectedIndexes objectForKey:indexPath];
    return selectedIndex == nil ? FALSE : [selectedIndex boolValue];
}

admin's avatar
admin committed
383 384 385
#pragma mark - UITableView DataSource/Delegate
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
admin's avatar
admin committed
386
    return _taskData.count;
admin's avatar
admin committed
387 388 389 390
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
admin's avatar
admin committed
391 392
    TaskGroup *taskGroup = _taskData[section];
    NSInteger count = taskGroup.isOpened ? taskGroup.answers.count : 0;
393
    return count;
admin's avatar
admin committed
394 395 396 397 398
}

// cell显示的内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
399 400 401
    RankDetailTableCell *cell=[tableView dequeueReusableCellWithIdentifier:kRankDetailCell];
    if (!cell) {
        cell = [[RankDetailTableCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:kRankDetailCell];
admin's avatar
admin committed
402
    }
403
    
admin's avatar
admin committed
404 405 406 407
    TaskGroup *taskGroup = _taskData[indexPath.section];
    TaskModel *task = taskGroup.answers[indexPath.row];
    
    cell.task = task;
408
    
409 410
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

admin's avatar
admin committed
411
    [cell.mainTitleBtn setTitle:[NSString stringWithFormat:@"%d、%@", (int)(indexPath.row + 1) ,task.title] forState:UIControlStateNormal];
412 413 414 415 416
    if (task.score == NULL || task.score == nil) {
        cell.scoreLabel.text = [NSString stringWithFormat:@"0分"];
    } else {
        cell.scoreLabel.text = [NSString stringWithFormat:@"%@分", task.score];
    }
417 418
    // 按钮点击事件
    [cell.mainTitleBtn addTarget:self action:@selector(showScrollView:) forControlEvents:UIControlEventTouchUpInside];
419 420
    
    return cell;
421

admin's avatar
admin committed
422 423 424 425 426 427 428 429 430 431 432
}

// cell的点击事件
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    
}

// cell的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
433 434 435 436 437
    if([self cellIsSelected:indexPath]) {
        return 130;
    }
    
    return 44;
admin's avatar
admin committed
438 439 440 441 442
}

// section高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
443
    return 50;
admin's avatar
admin committed
444 445 446 447 448 449 450 451 452 453 454
}

// foot高度
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return CGFLOAT_MIN;
}

// 自定义section
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
455 456
    RankHeadView *headView = [RankHeadView headViewWithTableView:tableView];
    headView.delegate = self;
admin's avatar
admin committed
457
    headView.taskGroup = _taskData[section];
458
    return headView;
admin's avatar
admin committed
459 460
}

461 462 463 464 465 466
- (void)clickRankHeadView
{
    [self.tableView reloadData];
}


admin's avatar
admin committed
467 468 469 470 471 472 473 474 475 476
#pragma mark - lazy Laoding
- (UITableView *)tableView
{
    if (!_tableView) {
        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
        _tableView.translatesAutoresizingMaskIntoConstraints = NO;
        _tableView.delegate = self;
        _tableView.dataSource = self;
        _tableView.showsVerticalScrollIndicator = NO;
        _tableView.showsHorizontalScrollIndicator = NO;
admin's avatar
admin committed
477
        _tableView.tableFooterView = self.footerView;
admin's avatar
admin committed
478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495
        [self.view addSubview:_tableView];
        
        NSLayoutConstraint *tableTop = [NSLayoutConstraint constraintWithItem:_tableView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:0];
        [self.view addConstraint:tableTop];
        
        NSLayoutConstraint *tableLeft = [NSLayoutConstraint constraintWithItem:_tableView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0];
        [self.view addConstraint:tableLeft];
        
        NSLayoutConstraint *tableRight = [NSLayoutConstraint constraintWithItem:_tableView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0 constant:0];
        [self.view addConstraint:tableRight];
        
        NSLayoutConstraint *tableBottom = [NSLayoutConstraint constraintWithItem:_tableView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0];
        [self.view addConstraint:tableBottom];
    }
    return _tableView;
}


496 497 498 499
- (RankDetailHeaderView *)rankDetailHeaderView
{
    if (!_rankDetailHeaderView) {
        _rankDetailHeaderView = [[RankDetailHeaderView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 298)];
500 501
        NSLog(@"se。row= =%ld", _indexRow);
        if (self.indexRow <= 3) {
502
            NSString *imageName = [NSString stringWithFormat:@"medal_0%ld", (long)(_indexRow)];
503 504
            _rankDetailHeaderView.rankDetailView.gradeImageView.image = [UIImage imageNamed:imageName];
        } else {
505
            NSString *rankStr = [NSString stringWithFormat:@"第 %ld 名", (long)(_indexRow)];
506 507 508 509 510 511 512 513 514 515 516
            NSMutableAttributedString *rankAttr = [[NSMutableAttributedString alloc] initWithString:rankStr];
            [rankAttr addAttributes:@{NSForegroundColorAttributeName:kRankHeadTitleTextColor,NSFontAttributeName:[UIFont systemFontOfSize:14.0f]} range:NSMakeRange(0,1)];
            [rankAttr addAttributes:@{NSForegroundColorAttributeName:kGradeNumberTextColor} range:NSMakeRange(1,rankStr.length - 2)];
            [rankAttr addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:18.0] range:NSMakeRange(1,rankStr.length - 2)];
            [rankAttr addAttributes:@{NSForegroundColorAttributeName:kRankHeadTitleTextColor,NSFontAttributeName:[UIFont systemFontOfSize:14.0f]} range:NSMakeRange(rankStr.length - 1,1)];
            [_rankDetailHeaderView.rankDetailView.gradeLabel setAttributedText:rankAttr];
        }
    }
    return _rankDetailHeaderView;
}

admin's avatar
admin committed
517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556
- (UIView *)footerView
{
    if (!_footerView) {
        _footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 60)];
        
    }
    return _footerView;
}

- (UIButton *)commentButton
{
    if (!_commentButton) {
        _commentButton = [[UIButton alloc] init];
        // 设置圆角
        _commentButton.layer.cornerRadius = 5;
        _commentButton.translatesAutoresizingMaskIntoConstraints = NO;
        _commentButton.backgroundColor = kLoginButtonBackGroundColor;
        [_commentButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        [_commentButton addTarget:self action:@selector(addComment:) forControlEvents:UIControlEventTouchUpInside];
        _commentButton.titleLabel.font = [UIFont systemFontOfSize:20.0];
        [self.footerView addSubview:_commentButton];
        
        // 顶端
        NSLayoutConstraint *loginTop = [NSLayoutConstraint constraintWithItem:_commentButton attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.footerView attribute:NSLayoutAttributeTop multiplier:1.0 constant:20];
        [self.footerView addConstraint:loginTop];
        
        // 左边
        NSLayoutConstraint *loginLeft = [NSLayoutConstraint constraintWithItem:_commentButton attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.footerView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20];
        [self.footerView addConstraint:loginLeft];
        
        // 右边
        NSLayoutConstraint *loginRight = [NSLayoutConstraint constraintWithItem:_commentButton attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.footerView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20];
        [self.footerView addConstraint:loginRight];
        
        // 高度
        NSLayoutConstraint *loginHeight = [NSLayoutConstraint constraintWithItem:_commentButton attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:40];
        [self.footerView addConstraint:loginHeight];
    }
    return _commentButton;
}
admin's avatar
admin committed
557 558 559 560 561 562 563 564 565 566 567
/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end