【发布时间】:2016-01-12 06:12:09
【问题描述】:
如何在 UIScrollView 中修复屏幕上的子视图位置? 每次滚动时都会删除子视图。
我用这个但是闪烁子视图。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
UIButton *btn = (UIButton*)[self.view viewWithTag:popupTag];
BOOL ISOPENED = FALSE;
if(vPopup.hidden == TRUE)
{
ISOPENED = FALSE;
}
else
{
ISOPENED = TRUE;
}
[vPopup setHidden:YES];
if(ISOPENED)
{
double delayInSeconds = 0.01;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW,delayInSeconds * USEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
vPopup.frame = CGRectMake(
(btn.frame.origin.x + (btn.frame.origin.x * (scroll.zoomScale-1))) - ((popupW/2)-(scroll.zoomScale)),
btn.frame.origin.y+(btn.frame.origin.y * (scroll.zoomScale-1)) - popupH,
popupW, popupH);
[vPopup setHidden:NO];
});
}
}
【问题讨论】:
-
我不确定您要做什么,但是每当视图滚动时(可能是每秒 60 次),您都会隐藏
vPopup,然后尝试在 0.01 之后显示它秒,然后再次隐藏并在 0.01 秒后显示。 -
我试图在视图滚动时始终显示 vPopup。
-
这段代码到底发生了什么......为什么你不尝试一些不那么昂贵的东西,例如“scrollViewWillBeginDragging”或类似的东西来管理你的视图的可见性
标签: ios cocoa-touch uiscrollview