程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SWIFT iOS - 从多行 uitextview 中获取带有换行符的文本,因为它们在屏幕上可见大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决SWIFT iOS - 从多行 uitextview 中获取带有换行符的文本,因为它们在屏幕上可见?

开发过程中遇到SWIFT iOS - 从多行 uitextview 中获取带有换行符的文本,因为它们在屏幕上可见的问题如何解决?下面主要结合日常开发的经验,给出你关于SWIFT iOS - 从多行 uitextview 中获取带有换行符的文本,因为它们在屏幕上可见的解决方法建议,希望对你解决SWIFT iOS - 从多行 uitextview 中获取带有换行符的文本,因为它们在屏幕上可见有所启发或帮助;

我有一个多行 UITextVIEw,有时文本会换行几行。我想从中获取文本,并从 iphone 屏幕上可见的内容换行。

这很有用,因为我有一个 UITextVIEw 可以随 UI @R_227_6502@大小,并且我想在用户在屏幕上看到文本时捕获文本。

使用 textvIEw.text@H_@R_874_11239@_10@ 从 UITextVIEw 获取文本不包含这些。 (尽管它确实包含用户通过按键盘上的“返回”键输入的任何换行符。)

我想也许您需要测量 UITextVIEw 的高度并检查每个字符,但我不知道该怎么做。我还希望它与表情符号一起使用。

解决方法

看来你是想获取UITextView的快照而不是获取textview.text@H_@R_874_11239@_10@,所以你需要学习如何将uITextView的内容绘制成图片。

有关如何绘制UIView@H_@R_874_11239@_10@的快照,请尝试this。

有关如何绘制NSAttribeString@H_@R_874_11239@_10@的快照,请尝试draw(with:options:context:)。

,

Core Text 或 TextKit 是处理文本的最佳选择。

这个答案显示了如何使用核心文本获取自动换行:https://stackoverflow.com/a/13588322/1837959。

或者您可以访问 layoutManager@H_@R_874_11239@_10@ 的 UITextView@H_@R_874_11239@_10@ (NSLayoutManager) 以访问布局数据。

,

听起来像一个hacky的解决方案,但实际上并非如此:

使用 Vision Framework's text recognition 将图像转换为文本。

  1. 将视图转换为图像
@H_607_47@extension UIView { var toImage: UIImage? { let renderer = UIGraphicsImageRenderer(bounds: self.bounds) return renderer.image { (context) in self.layer.render(in: context.cgContext) } } } @H_@R_874_11239@_10@
let yourTextView = UITextView()
let img = yourTextView.toImage()
@H_@R_874_11239@_10@
  1. Follow article
@H_607_47@guard let cgimg = img.cgImage else {return} // Create a new image-request handler. let requestHandler = VNImagerequestHandler(cgImage: cgImagE) // Create a new request to recognize text. let request = VNRecognizeTextrequest(completion: recognizeTextHandler) do { // Perform the text-recognition request. try requestHandler.perform([request]) } catch { print("Unable to perform the requests: \(error).") } @H_@R_874_11239@_10@ @H_607_47@// Process the Results func recognizeTextHandler(request: VNrequest,error: Error?) { guard let observations = request.results as? [VNRecognizedTextObservation] else { return } let recognizedStrings = observations.compactMap { observation in // Return the String of the top VNRecognizedText instance. return observation.topCandidates(1).first?.String } // Use the result processResults(recognizedStrings) } @H_@R_874_11239@_10@ ,

UITextView 文本将显示 '\n' 以供用户输入(当他按下 Enter 键时)。 如果用户不按回车键/返回并继续写入,则会根据 UITextView 的大小/宽度进行自动换行。所以你不应该什么。所以如果你看到“\n” 只需将其更改为
,如果您在网站中显示它或使用 Web 视图 html 布局。或者只需用空格替换所有 "\n" 并且不要包装它,让视图的宽度决定如何包装它。 IOS iPhone 的屏幕截图并以同样的方式显示看起来更奇怪。

例如。

认为是

数据偶数

没有

返回。 它应该在一行中。

大佬总结

以上是大佬教程为你收集整理的SWIFT iOS - 从多行 uitextview 中获取带有换行符的文本,因为它们在屏幕上可见全部内容,希望文章能够帮你解决SWIFT iOS - 从多行 uitextview 中获取带有换行符的文本,因为它们在屏幕上可见所遇到的程序开发问题。

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

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