- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个文本 (ASTextNode)
let contentNode = ASTextNode()
contentNode.maximumNumberOfLines = 7
contentNode.truncationMode = .byTruncatingTail
contentNode.isUserInteractionEnabled = true
contentNode.delegate = self
并且在contentNode中有链接
我为 contentNode 设置 touchUpInSide
contentNode.addTarget(self, action: #selector(contentNodeTapped), forControlEvents: .touchUpInside)
@objc func contentNodeTapped() {
if contentNode.maximumNumberOfLines == 7 {
contentNode.maximumNumberOfLines = 0
} else {
contentNode.maximumNumberOfLines = 7
}
UIView.animate(withDuration: 0.2, delay: 0, options: [UIView.AnimationOptions.layoutSubviews], animations: {
self.contentNode.setNeedsLayout()
self.contentNode.layoutIfNeeded()
}, completion: nil)
}
func textNode(_ textNode: ASTextNode!, tappedLinkAttribute attribute: String!, value: Any!, at point: CGPoint, textRange: NSRange) {
guard let url = value as? URL else { return }
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
当我点击 contentNode 时,我想更改 MaximumNumberOfLines 以查看所有文本,但这并不顺利。我只是尝试了 UIView.animate 但没有效果。
当我点击 contentNode 中的链接时,它不会同时调用 2 个函数 contentNodeTapped
和 tappedLinkAttribute
。
如何在点击链接时仅调用tappedLinkAttribute
。
点击后的文本
最佳答案
我相信你不能这样做,而是需要使用 ASEditableTextNode
并使用 ASEditableTextNodeDelegate
在 url
点击时捕获事件
你可以打电话
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {
// your action here
return true
}
您需要确保您的 ASEditableTextNode
样式看起来像您当前的 ASTextNode
关于ios - ASTextNode 中没有 LinkAttribute 的 TouchUpInside,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55862981/
我可以看到技术无关Tridion Content Delivery Language (TCDL) link具有以下参数,这些参数在 SDL Live Content 上有很好的描述。 类型 起源 目
在我的代码中使用 TTTAttributedLabel: NSString *contentText = @"some text here foo bar"; [self.content setTex
我有一个文本 (ASTextNode) let contentNode = ASTextNode() contentNode.maximumNumberOfLines = 7 contentNode.
我是一名优秀的程序员,十分优秀!