标签: contentoffset

UITableView ContentInset 和 ContentOffset

我的contentInset财产有问题。我有一个UITableView, 具有动态单元格大小 (AutoLayout)。我正在设置该contentInset属性以在内容顶部上方留出一些空间。但我得到以下结果:

意外结果

内容为蓝色,内容为紫色。当表格视图第一次出现时,它处于左边的情况。我可以滚动以找到正确的情况,这是有效的,但我希望表格视图直接出现在正确的插图中 - 我认为这将是默认行为。

我怎样才能做到这一点?

uitableview uiscrollview contentoffset swift

4
推荐指数
1
解决办法
6615
查看次数

Dynamic UITableView上的ContentOffset

我已经将"加载"单元硬编码为我的表视图的最后一个单元格,当生成此单元时,我调用一些方法从Web服务加载新数据,当我收到响应时保存数据,发送通知并在我的表视图上调用reloadData.

我想做同样的事情,但我的桌子的第一个单元格.

我的表格与时间有关,因此向下滚动会显示以后日期中的项目,其目的是让用户滚动更高并加载更早的项目.

我似乎无法成功设置初始偏移量来隐藏此加载单元格,因为如果显示它,那么它将开始加载早期数据.我知道scrollToRowAtIndexPath:atScrollPosition:animated:但我找不到合适的地方来调用它(使用索引路径:1:0第1行第0节).

正如我之前提到的,我需要在调用任何单元格之前设置此可见部分.

有没有人在桌面视图的开头尝试过这种单元格?

如何在第一个单元格被加载之前设置表格视图的初始可见部分?

我应该在这里做些什么吗?就像有一个tableviewHeader,当显示时,我在索引路径0:0处插入一行,这是加载器,并在我reloadTable后删除它?

cocoa-touch objective-c uitableview contentoffset

3
推荐指数
1
解决办法
2883
查看次数

reloadRowsAtIndexPaths更新表视图的contentOffset

我试图从tableview重新加载一个特定的行,但在重新加载后,tableview的contentOffset被重置为(0,0).我试图添加[tableview beginUpdates]和重新加载[tableview endUpdates]reloadRowsAtIndexPaths,但没有改变行为.

问题在这里被问到调用reloadRowsAtIndexPaths删除tableView contentOffset但它没有解决问题.我很确定动画与此行为无关.我还不确定如何在重新加载tableview行的同时保持tableview的内容Offset.

[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

objective-c uitableview reloaddata ios contentoffset

3
推荐指数
1
解决办法
2521
查看次数

如何实时获取UITableView的滚动位置

我需要实时获取表格视图的滚动位置.我目前正在做的是:

func animationOffset() {
    let offset = tableView.contentOffset.y
}
Run Code Online (Sandbox Code Playgroud)

此功能连接到计时器

timer = NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: #selector(TimelineViewController.animationOffset), userInfo: nil, repeats: true)
Run Code Online (Sandbox Code Playgroud)

如果用户将手指从屏幕上抬起,此代码可以正常工作,但如果他们不这样做并继续滚动,则偏移将永远不会更新,我的应用程序将无法正常运行.

uitableview uikit ios contentoffset swift

3
推荐指数
2
解决办法
9939
查看次数

UIScrollView不会在iOS 7中滚动到底部

在下面的代码示例中self.contentView引用了相关UIScrollView问题.

// Scroll to bottom.
CGPoint bottomOffset = CGPointMake(0, self.contentView.contentSize.height - 
                                   self.contentView.bounds.size.height);
if (bottomOffset.y >= 0.0)
{
    [self.contentView setContentOffset:bottomOffset animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,在iOS 6中,这非常好用,但在iOS 7中,滚动视图(假设它contentSize的垂直大于它frame.size.height)只滚动到添加到滚动视图的最底部子视图的最底部.

例如,如果以下情况适用:

self.contentView.frame.size.height == 50.0
self.contentView.contentSize.height == 100.0

aSubView.frame.origin.y == 50.0
aSubView.frame.size.height == 20.0
Run Code Online (Sandbox Code Playgroud)

滚动代码只会滚动直到aSubView可见; self.contentView.contentOffset.y == 20.0而不是self.contentView.contentOffset.y == 50.0在整个滚动视图的底部.

这是(当然)直到以编程方式添加另一个子视图self.contentView(通过用户交互),然后一切都自行纠正.

为清楚起见,我在滚动代码之前和之后设置断点来测量更改self.contentView.contentOffset.

其他有趣的事实,如果我直接删除animated并设置contentOffset它在iOS 7上按预期工作,但我更喜欢保持动画.

注意:不使用界面构建器

iphone objective-c uiscrollview ios contentoffset

1
推荐指数
2
解决办法
8086
查看次数

带有内容框架更新关闭的 SwiftUI ScrollView

我想要一个ScrollView你可以在用户滚动时知道内容框架变化的地方(类似于didScrollUIKit 中的委托UIScrollView)。

这样,您就可以根据滚动行为执行布局更改。

macos scrollview ios contentoffset swiftui

0
推荐指数
1
解决办法
1730
查看次数