好的,这里很奇怪。
我有一个UITextView,我用一个属性字符串填充。 TextView不想自己滚动,所以我必须启用一些设置,特别是:
override func viewDidLoad() {
super.viewDidLoad()
articleText.isUserInteractionEnabled = true
articleText.isSelectable = true
articleText.isScrollEnabled = true
articleText.panGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouchType.indirect.rawValue)]
articleText.bounces = true
setup()
}
但是,设置这些会导致scrollView以与tvOS上的其他内容相比的方式滚动。真奇怪。完整的类代码如下:
class ArticleViewController : UIViewController, ListingViewControllerProtocol {
var listing : ListingData?
@IBOutlet weak var articleText: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
articleText.isUserInteractionEnabled = true
articleText.isSelectable = true
articleText.isScrollEnabled = true
articleText.panGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouchType.indirect.rawValue)]
articleText.bounces = true
setup()
}
func setup(){
if let listing = self.listing {
APIManager.sharedInstance.getShortendArticle(url: listing.url, onCompletion: { (json) in
let article = ShortendArticle(fromJson: json)
let html = "<h1>" + article.title + "</h1>" + article.content
DispatchQueue.main.async(execute: {
let theAttributedString = try! NSAttributedString(data: html.data(using: String.Encoding.utf8, allowLossyConversion: false)!,
options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
documentAttributes: nil)
self.articleText.attributedText = theAttributedString
})
})
}
}
}
Mine与相关问题不一样,因为我并没有试图偏离tvOS标准
答案 0 :(得分:0)
此代码似乎按预期工作,这意味着:
向上滑动手势向下滚动文字,允许用户继续阅读更多文字。与在iOS中向上滑动相似的行为
向下滑动手势向上滚动文字,允许返回到开头。
来自tvOS人机界面指南:
在Apple TV上,几乎所有东西都使用间接操纵手势 在对象之间移动焦点,系统将界面滚动到 保持焦点项目可见。如果您的应用实现间接 操纵,确保焦点向手势方向移动。 如果有人在遥控器上轻击或滑动,例如,请对焦 应向右移动,意味着内容可能向左移动。如果有人点击或 向上滑动,焦点应该向上移动。像照片一样的全屏元素 应该使用直接操作而不是手势移动对象 而不是焦点。例如,向右滑动即可移动照片 从左到右。
https://developer.apple.com/tvos/human-interface-guidelines/user-interaction/