// // ViewController.m // phoneTest // // Created by Ray on 01/09/2017. // // #define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] #import "ResultViewController.h" #import "FullyShowViewController.h" #import "RANetwork.h" #import "RAUtils.h" #import "JLRefreshHeader.h" #import "JLRefreshFooter.h" //#import "OrderDetailViewController.h" //#import "KVViewController.h" #import #import "config.h" #import "RAConvertor.h" //#import "RTLabel.h" const int delta = 25; @interface ResultViewController () @property (nonatomic,strong) QLPreviewController *quickLook; @property (nonatomic,copy) NSString *documentPath; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *w_constraint; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *h_constraint; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *trail_constraint; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *lead_constraint; @end @implementation ResultViewController - (void)labelClick { NSLog(@"underlineLabel被点击了"); } - (void)viewDidLoad { [super viewDidLoad]; // self.labelTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelTapAction:)]; // // self.labelTap.numberOfTouchesRequired = 1; //手指数 // self.labelTap.numberOfTapsRequired = 2; //tap次数 // // // // // self.cellDoubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(cellDoubleTapAction:)]; // // self.cellDoubleTap.numberOfTouchesRequired = 1; //手指数 // self.cellDoubleTap.numberOfTapsRequired = 2; //tap次数 // UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self // action:nil]; // singleFingerOne.numberOfTouchesRequired = 1; //手指数 // singleFingerOne.numberOfTapsRequired = 1; //tap次数 // // // singleFingerTwo.delegate = self; self.label = [MDHTMLLabel new]; // NSString* Path = [[NSBundle mainBundle] pathForResource:@"layout.json" ofType:nil]; // // NSData *data = [NSData dataWithContentsOfFile:Path]; // self.content_layout = [[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil] mutableCopy]; // // // Path = [[NSBundle mainBundle] pathForResource:@"data.json" ofType:nil]; // // data = [NSData dataWithContentsOfFile:Path]; // self.content_data = [[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil] mutableCopy]; // int width=[self.content_layout[@"header"][@"width"] intValue]; // if(widthlabel.frame.size.width||self.label.frame.size.height>label.frame.size.height) { FullyShowViewController *fullVC = [ self.storyboard instantiateViewControllerWithIdentifier:@"fullyShowViewController"]; fullVC.htmlText = label.htmlText; fullVC.preferredContentSize = CGSizeMake(200, 240); fullVC.modalPresentationStyle=UIModalPresentationPopover; UIPopoverPresentationController* popPc = fullVC.popoverPresentationController; popPc.permittedArrowDirections = UIPopoverArrowDirectionAny; popPc.sourceView = label; popPc.delegate = self; [self presentViewController:fullVC animated:true completion:nil]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { } -(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { // auto resizing // self.scrollview.contentSize=self.tableview.frame.size; // auto layout // int width=[self.content_layout[@"header"][@"width"] intValue]; // if(widthitem.count-1) text=@"row data missing"; else text=item[i]; // RTTextLineBreakModeWordWrapping = kCTLineBreakByWordWrapping, // RTTextLineBreakModeCharWrapping = kCTLineBreakByCharWrapping, // RTTextLineBreakModeClip = kCTLineBreakByClipping, // NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:text]; // vallabel.attributedText = attrStr; vallabel.htmlText = text; vallabel.textAlignment= [self get_TextHAlign:arr_col[i][@"h_align"] ]; vallabel.layer.borderWidth=0.5; // UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(labelTapAction:)]; UITapGestureRecognizer* labelTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelTapAction:)]; labelTap.numberOfTouchesRequired = 1; //手指数 labelTap.numberOfTapsRequired = 1; //tap次数 [vallabel addGestureRecognizer:labelTap]; [labelTap requireGestureRecognizerToFail:cellDoubleTap]; // [vallabel addGestureRecognizer:self.cellDoubleTap]; vallabel.userInteractionEnabled = YES; // [vallabel becomeFirstResponder]; // vallabel.delegate = self; // [statuslabel sizeToFit]; [cell addSubview:vallabel]; x+=width; } if(indexPath.row%2==0) cell.backgroundColor=UIColorFromRGB(color0);//[UIColor whiteColor]; else cell.backgroundColor=UIColorFromRGB(color1);//[UIColor lightGrayColor]; return cell; } } //#pragma mark - TouchLabel Delegate //- (void)touchLabel:(TouchLabel *)touchLabel touchesWtihTag:(NSInteger)tag //{ // //} //-(void) empty //{ // //} #pragma mark - UIPopoverPresentationControllerDelegate Delegate //实现该代理方法,返回UIModalPresentationNone值,可以在iPhone设备实现popover效果 -(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller{ return UIModalPresentationNone;//不适配(不区分ipad或iPhone) } #pragma mark - TableView Delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"cell selected"); } - (UITableViewCellEditingStyle)tableView:(UITableView *)tv editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleDelete; } #pragma mark - Public - (void)setQueryParams:(NSDictionary *)params { self.params = params; } #pragma mark - Private - (void)setupTableRefreshView { __weak typeof(self) weakSelf = self; self.tableview.jl_header = [[JLRefreshHeader alloc] init]; self.tableview.jl_header.refreshDelegate = self; self.tableview.jl_header.clear = YES; self.tableview.jl_header.offsetBlock = ^(CGFloat offset) { if (offset <= 0) { weakSelf.header_top_constraint.constant = -offset; } }; self.tableview.jl_header.stateChangeBlock = ^(JLRefreshState state) { NSString *title = [weakSelf.tableview.jl_header refreshTitleForState:state]; weakSelf.refreshHeaderTitleLb.text = title; }; self.tableview.jl_footer = [[JLRefreshFooter alloc] init]; self.tableview.jl_footer.refreshDelegate = self; self.tableview.jl_footer.clear = YES; self.tableview.jl_footer.offsetBlock = ^(CGFloat offset) { if (offset <= 0) { weakSelf.footer_top_constraint.constant = offset; } }; self.tableview.jl_footer.stateChangeBlock = ^(JLRefreshState state) { NSString *title = [weakSelf.tableview.jl_footer refreshTitleForState:state]; weakSelf.refreshFooterTitleLb.text = title; }; } - (void)setupNavigationBar { if(self.content_menu==nil) { self.navigationItem.rightBarButtonItem=nil; return; } UIBarButtonItem *menuItem = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStylePlain target:self action:@selector(MenuClick:)]; self.navigationItem.rightBarButtonItem = menuItem; } - (void)MenuClick:(UIBarButtonItem *)sender { UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Menu" message:nil preferredStyle:UIAlertControllerStyleAlert]; //block代码块取代了delegate __weak typeof(self) weakSelf = self; for(int i=0;i) previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index { return [NSURL fileURLWithPath:self.documentPath]; } #pragma mark - QuickLook Delegate - (void) previewControllerDidDismiss:(QLPreviewController *)controller { } /** * 文件内部链接点击不进行外部跳转 */ - (BOOL) previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id)item { return NO; } #pragma mark - customize editor - (UIView*)get_tableHeader { UILabel * headerview = [UILabel new]; headerview.frame = CGRectMake(0, 0, self.tableview.frame.size.width, 44); headerview.numberOfLines = 0; headerview.textAlignment = NSTextAlignmentCenter; headerview.text = @""; return headerview; } -(void) resize_tableHeader { //利用systemLayoutSizeFittingSize:计算出真实高度 CGFloat height = [self.tableview.tableHeaderView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height; CGRect headerFrame = self.tableview.tableHeaderView.frame; headerFrame.size.height = height+20;//20是留的上下边距 //修改tableHeaderView的frame self.tableview.tableHeaderView.frame = headerFrame; } @end