CGRect
リンクテキストまたは位置を検出しCGPoint
て、クリックされたリンクのポップオーバーを (ipad で) 表示することは可能TTTAttributedLabel
ですか? クリックしたリンクにポップオーバーを表示する必要がありますTTTAttributedLabel
。
ありがとう!
CGRect
リンクテキストまたは位置を検出しCGPoint
て、クリックされたリンクのポップオーバーを (ipad で) 表示することは可能TTTAttributedLabel
ですか? クリックしたリンクにポップオーバーを表示する必要がありますTTTAttributedLabel
。
ありがとう!
これを行うには、この動作をサポートするように TTTAttributedLabel を変更する必要があります。
1) デリゲート メソッドを変更します。
- (void)attributedLabel:(TTTAttributedLabel *)label
didSelectLinkWithURL:(NSURL *)url
atPoint:(CGPoint)point;
2)TTTAttributedLabel.m
ソースで、 を変更しtouchesEnded:withEvent:
てタッチ ポイントを取得し、これをデリゲート メソッドに渡します。
switch (result.resultType) {
case NSTextCheckingTypeLink:
if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithURL:atPoint:)]) {
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self];
[self.delegate attributedLabel:self didSelectLinkWithURL:result.URL atPoint:touchPoint];
return;
3) ビュー コントローラーでは、そのタッチ ポイントをビュー コントローラーのビューに対する相対座標に変換する必要があります。
#pragma mark TTTAttributedLabelDelegate
- (void)attributedLabel:(TTTAttributedLabel *)label
didSelectLinkWithURL:(NSURL *)url
atPoint:(CGPoint)point
{
CGPoint normalizedPoint = [self convertPoint:point fromView:label];
UIActionSheet *actionSheet = [[UIActionSheet alloc] ...
[actionSheet showFromRect:CGRectMake(normalizedPoint.x, normalizedPoint.y-kSensibleOffset, 10, 10)
inView:label
animated:YES];
}
#pragma mark -
位置を追跡しようとして、ジェスチャレベルでこれを実行することは望ましくありません。あなたはリンクを持っているのでopenURL
、リンクのクリックを傍受するときは、オーバーライドして好きなことをしてください。詳細はこちらです。