【发布时间】:2012-06-07 03:21:55
【问题描述】:
我遇到了UIScrollView 的问题,不确定这是否是一个错误,但是当我使用其delegate 和一个可缩放/可平移的图像实现UIScrollView 时就会发生这种情况。
首先,当我平移图像时,contentOffset 可能是一个非整数值 (.5)。对于某些zoomScales,当我将图像一直平移到边缘时,由于这个原因,它在到达边缘时下降了半个像素。
这是一个很小的东西,但在我的应用程序中我必须在屏幕上拖动对象,如果我将一个对象拖到角落,你会注意到它。
我已经实施了以下方法来尝试纠正问题并使其contentOffset 必须是一个完整的值:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
if (targetContentOffset->x != ceilf(targetContentOffset->x))
{
if (velocity.x > 0)
{
targetContentOffset->x = ceilf(targetContentOffset->x);
}
else
{
targetContentOffset->x = floorf(targetContentOffset->x);
}
}
if (targetContentOffset->y != ceilf(targetContentOffset->y))
{
if (velocity.y > 0)
{
targetContentOffset->y = ceilf(targetContentOffset->y);
}
else
{
targetContentOffset->y = floorf(targetContentOffset->y);
}
}
}
但是,它似乎不起作用,因为我的 targetContentOffset 与 contentOffset 属性完全不同。
有人a)为什么会出现这个错误或b)如何使用上述委托方法或其他方式修复它?
【问题讨论】:
-
嗯,你是对的。这似乎应该工作。我删除了我的答案,并在此过程中学到了一些新东西。
标签: iphone ios cocoa-touch uiscrollview uiscrollviewdelegate