gpt4 book ai didi

ios5 - 在uiscrollviewdelegate中,是否可以将targetContentOffset设置为负值?

转载 作者:行者123 更新时间:2023-12-02 22:51:51 24 4
gpt4 key购买 nike

我有一个 UIScrollView ,它的宽度与其父 View 相同。它有一个非常宽的 contentSize 并水平滚动。

我尝试使用委托(delegate)方法scrollViewWillEndDragging:withVelocity:targetContentOffset: 将 targetContentOffset->x 设置为负值(即,将内容区域的左边缘移动到更靠近屏幕中心的位置)。

设置该值似乎有效(NSLog 显示前后的变化),但 ScrollView 似乎忽略了修改后的 targetContentOffset 并仅在 0 处结束滚动。

-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
NSLog(@"target: %@", NSStringFromCGPoint(*targetContentOffset));
if (targetContentOffset->x <= 0.0)
{
targetContentOffset->x = -300;
}

NSLog(@"target: %@", NSStringFromCGPoint(*targetContentOffset));
}

有人知道是否可以使用此方法来完成此操作,还是我应该以其他方式完成此操作?

最佳答案

我已经通过使用 contentInset 属性成功解决了类似的问题。

这是 Swift 中的示例:

func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
// Determine threshold for dragging to freeze content at the certain position
if scrollView.contentOffset.y < -50 {
// Save current drag offset to make smooth animation lately
var offsetY = scrollView.contentOffset.y
// Set top inset for the content to freeze at
scrollView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)
// Set total content offset to preserved value after dragging
scrollView.setContentOffset(CGPoint(x: 0, y: offsetY), animated: false)
// Make any async function you needed to
yourAsyncMethod(complete: {() -> Void in
// Set final top inset to zero
self.tripsTableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)
// Set total content offset to initial position
self.tripsTableView.setContentOffset(CGPoint(x: 0, y: -50), animated: false)
// Animate content offset to zero
self.tripsTableView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
})
}
}

您可以改进它以用于水平滚动

关于ios5 - 在uiscrollviewdelegate中,是否可以将targetContentOffset设置为负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11794351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com