[Swift通天遁地]八、媒体与动画-(14)使用TextKit快速实现文章的分栏效果

[Swift通天遁地]八、媒体与动画-(14)使用TextKit快速实现文章的分栏效果,第1张

概述本文将演示对长文本进行分栏显示。往项目中导入一份文本文件。 在左侧的项目导航区,打开视图控制器的代码文件【ViewController.swift】 现在开始编写代码,加载文本文件中的内容,并对文字进行分栏。 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func vi

本文将演示对长文本进行分栏显示。往项目中导入一份文本文件。

在左侧的项目导航区,打开视图控制器的代码文件【VIEwController.swift】

现在开始编写代码,加载文本文件中的内容,并对文字进行分栏。

 1 import UIKit 2  3 class VIEwController: UIVIEwController { 4  5     overrIDe func vIEwDIDLoad() { 6         super.vIEwDIDLoad() 7         // Do any additional setup after loading the vIEw,typically from a nib. 8          9         //文本视图控件提供了很大的灵活性,可以快速进行富文本视图的创建和设计。10         //在此初始化一个指定显示区域的文本视图,用来实现杂志中常见的分栏效果。11         let firstTextVIEw = UITextVIEw(frame: CGRect(x: 20,y: 40,wIDth: 135,height: 200))12         //设置第一个视图的背景颜色为棕色。13         firstTextVIEw.backgroundcolor = UIcolor.brown14         //取消文本视图的可滚动性,使多余的无法显示的文字,自动进入第二个文本视图。15         firstTextVIEw.isScrollEnabled = false;16         //将第一个文本视图添加到根视图。17         self.vIEw.addSubvIEw(firstTextVIEw)18         19         //获得第一个视图的文字存储属性20         let textStorage = firstTextVIEw.textStorage21         //创建一个字符串,表示文本文件在项目中的路径。22         let path = Bundle.main.url(forResource: "word",withExtension: "txt")23         //添加一个异常捕捉语句,用来读取文本文件。24         do25         {26             //读取文本文件中的文字内容。27             let string = try String(contentsOf: path!)28             //将读取的文字,赋予文本视图的文字存储属性。29             textStorage.replaceCharacters(in: NSRange(location: 0,length: 0),with: string)30         }31         catch32         {33             print("Something went wrong :(")34         }35         36         //创建第二个文本视图的显示区域,它和第一个文本视图的尺寸相同,但是位于第一个文本视图的右侧。37         let secondRect = CGRect(x: 165,height: 200)38         //初始化一个文字容器对象。39         let secondTextContainer = NSTextContainer()40         //使用文字容器对象,创建第二个文本视图。41         let secondTextVIEw = UITextVIEw(frame: secondRect,textContainer: secondTextContainer)42         //设置第二个文本视图的背景颜色为棕色43         secondTextVIEw.backgroundcolor = UIcolor.brown44         //取消文本视图的可滚动性45         secondTextVIEw.isScrollEnabled = false46         //将第二个文本视图添加到根视图。47         self.vIEw.addSubvIEw(secondTextVIEw)48         49         //使用相同的方式,创建最后一个文本视图,该视图位于两个文本视图的下方。50         let thirdRect = CGRect(x: 20,y: 250,wIDth: 280,height: 300)51         //初始化一个文字容器对象。52         let thirdTextContainer = NSTextContainer()53         //使用文字容器对象,创建第三个文本视图。54         let thirdTextVIEw = UITextVIEw(frame: thirdRect,textContainer: thirdTextContainer)55         //设置第三个文本视图的背景颜色为紫色。56         thirdTextVIEw.backgroundcolor = UIcolor.purple57         //取消第三个文本视图的可滚动性。58         thirdTextVIEw.isScrollEnabled = false59         //将第三个文本视图添加到根视图60         self.vIEw.addSubvIEw(thirdTextVIEw)61         62         //初始化一个布局管理器。63         let layoutManager = NSLayoutManager()64         //将第一个文本视图的文字容器,添加到布局管理器。65         layoutManager.addTextContainer(firstTextVIEw.textContainer)66         //将第二个文本视图的文字容器,也添加到布局管理器。67         layoutManager.addTextContainer(secondTextContainer)68         //将第三个文本视图的文字容器,添加到布局管理器,69         //管理器就可以将三个文本视图视为一个容器,70         //当内容超出第一个文本视图的显示范围时,将自动填充第二个文本视图,以此类推。71         layoutManager.addTextContainer(thirdTextContainer)72         //将布局管理器,赋予一个文本视图的文字存储属性,73         //从而使三个文本视图,都可以显示第一个文本视图的文字存储属性的内容。74         textStorage.addLayoutManager(layoutManager)75     }76 77     overrIDe func dIDReceiveMemoryWarning() {78         super.dIDReceiveMemoryWarning()79         // dispose of any resources that can be recreated.80     }81 }
总结

以上是内存溢出为你收集整理的[Swift通天遁地]八、媒体与动画-(14)使用TextKit快速实现文章的分栏效果全部内容,希望文章能够帮你解决[Swift通天遁地]八、媒体与动画-(14)使用TextKit快速实现文章的分栏效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1019935.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存