SexyTooltip
拥有所有正确功能的提示框。
它能处理视图层次结构和滚动视图偏移的复杂问题。您只需告诉它指向哪个视图,它会完成其余的所有工作!即使视图在屏幕上移动,它也会跟随该视图,重新调整其大小和箭头,保持在窗口(或您指定的另一个父视图)的范围内。高度可配置但非常简单。
它相当性感。
安装
将 pod 'SexyTooltip'
添加到您的 Podfile
中或在此处下载源代码:here
创建
默认初始化器是为提示框提供一个内容视图,它将被包含在提示框内。
SexyTooltip *errorTooltip = [[SexyTooltip alloc] initWithContentView:self.errorLabel];
您还可以使用 NSAttributedString
来创建 SexyTooltip
,这样就会创建一个 UILabel 作为提示框的内容视图。
SexyTooltip *greetingsTooltip = [[SexyTooltip alloc] initWithAttributedString:greetingsText
sizedToView:self.view
withPadding:UIEdgeInsetsMake(10, 5, 10, 5)
andMargin:UIEdgeInsetsMake(20, 20, 20, 20)];
[self.view addSubview:greetingsTooltip];
呈现
性感提示框(SexyTooltip)的真谛,在您使用时才会显现。无需再处理嵌套的CGRect逻辑和UIScrollView偏移。只需传入您希望提示框指向的视图,即使该视图移动,性感提示框也将继续指向fromView
(请参阅上面的示例视频)
[greetingsTooltip presentFromView:self.loginButton
inView:self.view
withMargin:10
animated:YES];
您还可以从矩形或点开始显示。
如果您使用的是不带显式传入inView
的present
方法,则fromView
的直接父视图将用作inView
。inView
的bounds.size
必须大于提示框的最终bounds.size
(即width
和height
),否则将无法放置提示框。
dismissed
直接调用-(void)dismiss;
即可关闭提示框,默认为动画效果。如果您想令您的应用显得不那么有趣,可以使用[self.tooltip dismissAnimated:NO];
此外,您还可以使用[self.tooltip dismissInTimeInterval:10];
来使提示框显示10秒。任何其他关闭操作都将取消此定时器,或者您可以自己使用[self.tooltip cancelDismissTimer];
来取消。
当提示框被点击时,它也会被关闭。
外观
默认外观是一个漂亮的白色,带有点阴影和圆角。您可以更改从hasShadow
到arrowMargin
,再到borderColor
,padding
,arrowHeight
等进行设置。所有这些方法在显示时调用都将保持提示框当前所指的位置。
箭头方向
您可以指定一个permittedArrowDirections
数组,指定指向方向的偏好顺序。提示框将尝试适应您传入的inView
,同时保持箭头指向目标视图或点。例如,如果目标是屏幕上移动的视图,当视图移动到边缘时,性感提示框将改变其方向,以保持在inView
的范围内。这在复杂的提示框场景或界面显示不确定的情况下(例如,可变的文本大小)非常有用。
typedef NS_ENUM(NSUInteger, SexyTooltipArrowDirection) {
SexyTooltipArrowDirectionUp,
SexyTooltipArrowDirectionDown,
SexyTooltipArrowDirectionLeft,
SexyTooltipArrowDirectionRight
};
委托
您可以选择作为您工具提示的委托人接收以下任何事件的通知
@protocol SexyTooltipDelegate <NSObject>
@optional
- (void)tooltipDidPresent:(SexyTooltip *)tooltip;
- (void)tooltipDidDismiss:(SexyTooltip *)tooltip;
- (void)tooltipWillBeTapped:(SexyTooltip *)tooltip;
- (void)tooltipWasTapped:(SexyTooltip *)tooltip;
@end