問題:アクション (タップ、ナビゲート)NIAttributedLabel
で inを使用するUITableViewCell
- ラベルにリンクを追加する
- セルにラベルを追加する
- アクションタップでセルをモデルに追加する
ここに問題があります。リンクのラベルをタッチすると、実際にはリンクが表示されず、タップ アクションが実行されます。UIButton
しかし、同じ方法で aを追加するUITableViewCell
と、アクションが発生せず、ボタンをタッチしたときにボタンの応答が発生します。だから、ラベルの問題だと思います。どうすれば解決できますか?
私はついにこれを理解しました。
関数をファイル NIAttributedLabel.m に追加する
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { // never return self. always return the result of [super hitTest..]. // this takes userInteraction state, enabled, alpha values etc. into account UIView *hitResult = [super hitTest:point withEvent:event]; // don't check for links if the event was handled by one of the subviews if (hitResult != self) { return hitResult; } if (self.explicitLinkLocations || self.detectedlinkLocations) { BOOL didHitLink = ([self linkAtPoint:point] != nil); if (!didHitLink) { // not catch the touch if it didn't hit a link return nil; } } return hitResult; }
すべての touchXXX のすべての [super touch XXXX] 機能を削除します。
その後、それは動作します!