Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[Swift通天遁地]八、媒体与动画-(14)使用TextKit快速实现文章的分栏效果大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

本文将演示对长文本进行分栏显示。往项目中导入一份文本文件。 在左侧的项目导航区,打开视图控制器的代码文件【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.brown
14         //取消文本视图的可滚动性,使多余的无法显示文字自动进入第二个文本视图。
15         firstTextView.isScrollEnabled = false;
16         //将第一个文本视图添加到根视图。
17         self.view.addSubview(firstTextView)
18         
19         //获得第一个视图的文字存储属性
20         let textStorage = firstTextView.textStorage
21         //创建一个字符串,表示文本文件项目中的路径。
22         let path = Bundle.main.url(forresource: "word",withExtension: "txt")
23         //添加一个异常捕捉语句,用来读取文本文件
24         do
25         {
26             //读取文本文件中的文字内容
27             let String = try String(contentsOf: path!)
28             //将读取的文字,赋予文本视图的文字存储属性
29             textStorage.replaceCharacters(in: NSRange(LOCATIOn: 0,length: 0),with: String)
30         }
31         catch
32         {
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.brown
44         //取消文本视图的可滚动性
45         secondTextView.isScrollEnabled = false
46         //将第二个文本视图添加到根视图。
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.purple
57         //取消第三个文本视图的可滚动性。
58         thirdTextView.isScrollEnabled = false
59         //将第三个文本视图添加到根视图
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 }
@H_403_448@

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。