サードパーティのクラスを使用せずに、iOSでツールチップなどを作成するにはどうすればよいですか?数秒間、またはクリアされるまでツールチップポップアップを表示したいUIButtonがあります。サードパーティのクラスとライブラリを見たことがありますが、ネイティブでサポートされているかどうかを知りたいです。また、ツールチップの出所からポップアップする矢印を表示したいと思います。いくつかのUIActionSheetポップアップにこの矢印があるのを見ました。
乾杯、アミット
結局、サードパーティのツールチップCMTopTipViewを使用することになりました。ヘッダーと実装だけで、オーバーヘッドは比較的低くなります。ARC を考慮してわずかに変更しました。これが私がしたことです:
#import "CMPopTipView.h"
CMPopTipView *navBarLeftButtonPopTipView;
- (void) dismissToolTip
{
[navBarLeftButtonPopTipView dismissAnimated:YES];
}
- (void) showDoubleTap
{
navBarLeftButtonPopTipView = [[CMPopTipView alloc]
initWithMessage:@"DOUBLE Tap \n to view details"] ;
navBarLeftButtonPopTipView.delegate = self;
navBarLeftButtonPopTipView.backgroundColor = [UIColor darkGrayColor];
navBarLeftButtonPopTipView.textColor = [UIColor lightTextColor];
navBarLeftButtonPopTipView.opaque = FALSE;
[navBarLeftButtonPopTipView presentPointingAtView:catButton1
inView:self.view animated:YES];
navBarLeftButtonPopTipView.alpha = 0.75f;
NSTimer *timerShowToolTip = [NSTimer scheduledTimerWithTimeInterval:5.0
target:self
selector:@selector(dismissToolTip) userInfo:nil repeats:NO];
}
iPadを使用している場合は、を使用できますUIPopoverView
。またUIMenuController
、iPhoneまたはiPadの「ポップオーバー」機能のような機能を使用する必要があります:チュートリアル。それを超えて、これを行うために独自のサブクラスを作成することもできますが、その場合は自分UIView
で矢印を処理する必要があります。
さて、私がやったことは比較的単純でした。ボタンなしでテキストだけのUIActionSheetを使用することになりました。次に、UIButton が self.view にある座標平面から showFromRect を使用しました。
UIActionSheet *popup = [[UIActionSheet alloc]
initWithTitle:@"DOUBLE Tap \n to view details."
delegate:self cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil otherButtonTitles: nil];
[popup sizeToFit];
popup.tag = 9999;
CGRect myImageRect = CGRectMake(240.0f, 605.0f, 30.0f, -40.0f);
[popup showFromRect:myImageRect inView:self.view animated:YES];
私はそれを吸い上げて、CMPopTipView (サードパーティ コントロール) を使用して、サイズと不透明度とフェード アルファを調整することができます。