iOS 富文本点击事件

2017-02-15  本文已影响0人  会写bug的程序媛

//#import "ViewController.h"

#define font 17

@interface ViewController ()

@property (nonatomic, strong) UITextView *textView;

@property (assign, nonatomic) BOOL isSelect;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

_textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, 200)];

_textView.backgroundColor = [UIColor greenColor];

_textView.textColor = [UIColor blackColor];

[self.view addSubview:_textView];

[self protocolIsSelect:self.isSelect];

}

- (void)protocolIsSelect:(BOOL)select {

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"请遵守以下协议《支付宝协议》《微信协议》《建行协议》《招行协议》《中国银行协议》《上海银行协议》"];

[attributedString addAttribute:NSLinkAttributeName

value:@"zhifubao://"

range:[[attributedString string] rangeOfString:@"《支付宝协议》"]];

[attributedString addAttribute:NSLinkAttributeName

value:@"weixin://"

range:[[attributedString string] rangeOfString:@"《微信协议》"]];

[attributedString addAttribute:NSLinkAttributeName

value:@"jianhang://"

range:[[attributedString string] rangeOfString:@"《建行协议》"]];

UIImage *image = [UIImage imageNamed:select == YES ? @"new_feature_share_true" : @"new_feature_share_false"];

CGSize size = CGSizeMake(font + 2, font + 2);

UIGraphicsBeginImageContextWithOptions(size, false, 0);

[image drawInRect:CGRectMake(0, 2, size.width, size.height)];

UIImage *resizeImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];

textAttachment.image = resizeImage;

NSAttributedString *imageString = [NSAttributedString attributedStringWithAttachment:textAttachment];

[(NSMutableAttributedString *)imageString addAttribute:NSLinkAttributeName

value:@"checkbox://"

range:NSMakeRange(0, imageString.length)];

[attributedString insertAttributedString:imageString atIndex:0];

[attributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:font] range:NSMakeRange(0, attributedString.length)];

_textView.attributedText = attributedString;

_textView.linkTextAttributes = @{NSForegroundColorAttributeName: [UIColor blueColor],

NSUnderlineColorAttributeName: [UIColor lightGrayColor],

NSUnderlineStyleAttributeName: @(NSUnderlinePatternSolid)};

_textView.delegate = self;

_textView.editable = NO;        //必须禁止输入,否则点击将弹出输入键盘

_textView.scrollEnabled = NO;

}

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange {

if ([[URL scheme] isEqualToString:@"jianhang"]) {

NSLog(@"建行支付---------------");

return NO;

} else if ([[URL scheme] isEqualToString:@"zhifubao"]) {

NSLog(@"支付宝支付---------------");

return NO;

} else if ([[URL scheme] isEqualToString:@"weixin"]) {

NSLog(@"微信支付---------------");

return NO;

} else if ([[URL scheme] isEqualToString:@"checkbox"]) {

self.isSelect = !self.isSelect;

[self protocolIsSelect:self.isSelect];

return NO;

}

return YES;

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

上一篇下一篇

猜你喜欢

热点阅读