问题
I was learning about the view debugger in Xcode and capturing the view hierarchy with Debug > View Debugging > Capture View Hierarchy. However when I tried it in my app I got the following error:
Assertion failure in -[UITextView _firstBaselineOffsetFromTop], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.60.7/UITextView.m:1683
I could reproduce this in the following simple project:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let myTextView = UITextView()
myTextView.frame = CGRect(x: 50, y: 50, width: 200, height: 100)
myTextView.text = "This is a test."
view.addSubview(myTextView)
}
}
I saw here that it could be caused by not using auto layout. Is this really a bug that we have to wait for a fix? Is there a Swift workaround?
Update
The suggested duplicate looks like the same issue I am having. However, unlike that question, I am asking for a Swift workaround. The "answer" to that question was just a link (the same link that I already had above). I am voting to close the other way.
回答1:
Note do this in DEBUG builds only
A workaround to resolve this issue. Keep below category in your project. It worked for me.
@interface UITextView(MYTextView)
@end
@implementation UITextView (MYTextView)
- (void)_firstBaselineOffsetFromTop {
}
- (void)_baselineOffsetFromBottom {
}
@end
For swift
extension UITextView {
func _firstBaselineOffsetFromTop() {
}
func _baselineOffsetFromBottom() {
}
}
来源:https://stackoverflow.com/questions/37068231/assertion-failure-in-uitextview-firstbaselineoffsetfromtop