我一直关注(成功)以下教程,介绍如何构建一个绘制视觉跟踪弹出视图的UISlider子类。
http://blog.neuwert-media.com/2011/04/customized-uislider-with-visual-value-tracking/
我的最后一个问题是弹出视图被其他视图imageView元素隐藏。我一直在寻找某种显示顺序或偏好设置,但没有运气,坚持在图像上方显示我的弹出视图。
答案 0 :(得分:0)
尝试使用此SO Answer:
[parentView bringSubviewToFront:[[parentView subviews] objectAtIndex:0]];
// or
[parentView bringSubviewToFront:popupView];
答案 1 :(得分:0)
我建议将popover作为子视图添加到应用程序的keyWindow中,以便它超越一切。这可能是用户的预期行为。类似的东西:
- (void)setPopoverVisible:(BOOL)visible {
if (visible) {
[self.popover removeFromSuperview];
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
[keyWindow addSubview:self.popover];
}
[UIView animateWithDuration:0.15
delay:0
options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut
animations:^{
self.popover.alpha = (visible ? 1 : 0);
}
completion:^(BOOL finished) {
if (!visible) {
[self.popover removeFromSuperview];
}
}];
}
记住定位弹出框以将矩形或点(无论你用什么来定位滑块)转换为keyWindow的边界。例如:
- (void)positionPopover {
// Calculate newPopoverCenter in self.bounds
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
self.popover.center = [self convertPoint:newPopoverCenter toView:keyWindow];
}
答案 2 :(得分:0)
可以在这里找到更现代的方法:https://github.com/alskipp/ASValueTrackingSlider。也许它会解决你遇到的问题。