• <原>DTCoreText学习(四)-在html中嵌入自定义view


    我们已经使用过DTCoreText  其解析并显示html的功能十分强大,

    今天在此介绍其更加强大的功能

    首先看下图

    这是一个DTAttributedTextContentView     设置其属性 attributedString  来达到显示html的目的

    我们看到 文字之间有一个textfield  能响应  能编辑  ,    这就是我门在html中嵌入的自定义view

    首先看一下这段html的 源代码

    NSString *html=@"爱词霸英语为广大英语学习爱好者提供在线词典、在线翻译、英语句库、情景会话、英语学习资料、汉语词典、在线测试、金山词<object style=\"display:inline;\" someColorParameter=\"red\" width=100 height=20></object>情景会话、英语学习资料、汉语词典、在线测试、金山词";
    

     <object style=\"display:inline;\" someColorParameter=\"red\" width=100 height=20></object>

    这一句是核心代码,在解析到这一句的时候 DTCoreText会知道 我们想在这里嵌入一个自定义的view  宽度为100 高度为20

    颜色为红色     然后去调用他的委托方法  以得到我们自定义的视图的实例

    之后我们必须实现DTAttributedTextContentView  的委托方法

    - (UIView *)attributedTextContentView:(DTAttributedTextContentView *)attributedTextContentView viewForAttachment:(DTTextAttachment *)attachment frame:(CGRect)frame
    {  
        UITextField *text=[[UITextField alloc]initWithFrame:CGRectMake(0, 0,frame.size.width, frame.size.height)];
        text.borderStyle=UITextBorderStyleRoundedRect;
        text.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;
        return text;
        
    }
    

     这样DTcoreText就会在  那里插入我们自定义的view   而委托中的参数frame  是我们在html中设置的宽度高度,我门仍然可以在委托方法中修改frame      所有的显示效果 以我们在未果方法中的修改 定义为最终效果

    在委托方法中 我们甚至可以在view上  addSubView  等等    灵活度很大

    如果需要嵌入多处view的话  需要在委托中进行一些必要的判断

     

     
  • 相关阅读:
    Linux内核RPC请求过程
    二分图
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 文本加密
    Java蓝桥杯 算法提高 九宫格
    Java蓝桥杯 算法提高 九宫格
  • 原文地址:https://www.cnblogs.com/bucengyongyou/p/2677245.html
Copyright © 2020-2023  润新知