关闭

textView的布局和点击事件

825人阅读 评论(0) 收藏 举报
分类:


// - 设置 textView 不可以编辑

        textView.editable =NO;


// - 设置文字的内边距

        textView.textContainerInset =UIEdgeInsetsMake(0, -5,0, -5);

// - 设置 textView 不可以滚动

        textView.scrollEnabled =NO;


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

    // 触摸对象

    UITouch *touch = [touches anyObject];

    

    // 触摸点

    CGPoint point = [touch locationInView:self];

    

    NSArray *specials = [self.attributedTextattribute:@"specials"atIndex:0effectiveRange:NULL];

    BOOL contains = NO;

    

    for (HWSpecial *specialin specials) {

        self.selectedRange = special.range;

        // self.selectedRange --影响--> self.selectedTextRange

        // 获得选中范围的矩形框

        NSArray *rects = [selfselectionRectsForRange:self.selectedTextRange];

        // 清空选中范围

        self.selectedRange =NSMakeRange(0,0);

        

        for (UITextSelectionRect *selectionRectin rects) {

            CGRect rect = selectionRect.rect;

            if (rect.size.width ==0 || rect.size.height ==0) continue;

            

            if (CGRectContainsPoint(rect, point)) {// 点中了某个特殊字符串

                contains = YES;

                break;

            }

        }

        

        if (contains) {

            for (UITextSelectionRect *selectionRectin rects) {

                CGRect rect = selectionRect.rect;

                if (rect.size.width ==0 || rect.size.height ==0) continue;

                

                UIView *cover = [[UIViewalloc] init];

                cover.backgroundColor = [UIColorgreenColor];

                cover.frame = rect;

                cover.tag = HWStatusTextViewCoverTag;

                cover.layer.cornerRadius =5;

                [self insertSubview:cover atIndex:0];

            }

            

            break;

        }

    }

    

    // 在被触摸的特殊字符串后面显示一段高亮的背景

}


- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)),dispatch_get_main_queue(), ^{

        [self touchesCancelled:toucheswithEvent:event];

    });

}


- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event

{

    // 去掉特殊字符串后面的高亮背景

    for (UIView *childin self.subviews) {

        if (child.tag ==HWStatusTextViewCoverTag) [child removeFromSuperview];

    }

}



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

TextView 中拦截点击事件

TextView 中的链接点击后,会自动跳转到浏览器显示。如果需要自己拦截这个事件,可以通过下面的方法实现: CharSequence charSequence = Html.fromH...
  • wq3090202314
  • wq3090202314
  • 2016-08-28 19:31
  • 165

Android给TextView添加点击事件

1.界面 首先设定TextView的clickable属性为true。 可以在布局文件中进行设定,比如: <LinearLayout xmlns:android="http://schemas.a...
  • qq_29134495
  • qq_29134495
  • 2016-05-14 01:16
  • 3043

iOS开发之点触textView编辑区关闭键盘

textView,textField 关闭键盘的方式网上有很多种, 最普遍的是使用键盘中回车键作为键盘关闭的信号,甚至有用户交互最差的监听键盘输入。再就是​在键盘上添加关闭按钮,这个也不好,不够...
  • lx930709
  • lx930709
  • 2016-05-26 01:45
  • 1079

Android同一个TextView里响应多个区域点击事件

有时会遇到在一个TextView里处理特定字符串的点击事件,而且这些字符串位置不固定,这里就是通过正则筛选然后单独对字符串处理点击事件.
  • sinat_22553227
  • sinat_22553227
  • 2015-12-13 12:00
  • 2470

Textview显示Html,图文混排,支持图片点击放大

对于呈现Html文本来说,Android提供的Webview控件可以得到很好的效果,但使用Webview控件的弊端是效率相对比较低,对于呈现简单的html文本的话,杀鸡不必使用牛刀。另外如果是在Lis...
  • u010403463
  • u010403463
  • 2015-06-26 19:29
  • 2461

iOS UITextView详解 陌生属性解释,添加展示超链接并交互

@property (nullable, readwrite, strong) UIView *inputView;//inputView就是显示键盘的view,重写这个view,就不会弹出键盘,而是...
  • HDFQQ188816190
  • HDFQQ188816190
  • 2017-06-06 16:38
  • 622

给TextView的drawableRight属性设置点击事件

由于需求,要给TextView的drawableRight图片设置点击事件 其实更多的可能是EditText,像登录框那样的,其实都一样 上代码/** * Created by great小...
  • sinat_35670989
  • sinat_35670989
  • 2016-11-30 18:15
  • 2357

TextView中的文本加效果,如设置不同颜色,大小或点击事件

方法一 利用HTML语言,改变文字颜色 例1: String str = "中软" + "国际"; TextView tv = new TextView(this); tv.set...
  • u012816314
  • u012816314
  • 2016-06-02 17:40
  • 1248

TextView中的部分文字响应点击事件

TextView是android常用的控件,经常要显示不同文字的大小,颜色,......今天要实现这样这样一个需求,TextView某段内容显示的文字颜色不一样,并且点击区域只能是改变了颜色的字. ...
  • lowprofile_coding
  • lowprofile_coding
  • 2015-08-31 19:07
  • 7232

Android - TextView 实现部分文本点击事件

1.描述    一个TextView ,显示的文本 ,有部分文字被点击后响应事件 ,通过SpannableStringBuilder 实现 。    效果演示 :             ...
  • LABLENET
  • LABLENET
  • 2015-12-07 17:38
  • 4306
    个人资料
    • 访问:107752次
    • 积分:3078
    • 等级:
    • 排名:第13108名
    • 原创:209篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条