在Mac上,按住向上或向下箭头时,Mail和Finder的表格视图上的滚动看起来很稳定。行高亮与列的顶部或底部齐平,并且行无动画。
8年前似乎是hard to not do this。现在,我似乎无法停止scrollRowToVisible
进行动画制作了。{p1
我尝试用NSOutlineView
或NSAnimationContext.beginGrouping()
等包装呼叫,以将任何动画持续时间设置为CATransaction.begin()
,但是没有运气。
总有没有办法使这个电话变得响亮-或者我应该使用低一点的东西吗?
编辑
这是我的代码。持续时间在这里无效。滚动动画总是有几帧,并且动画的端点有些不规则(即,滚动到视图的底部边缘并不总是与底部边缘对齐)。
0.0
使用runAnimationGroup具有相同的结果:
if selectedRows != outlineView.selectedRowIndexes {
outlineView.selectRowIndexes(selectedRows, byExtendingSelection: false)
// I would love this not to animate like in mail, but it cannot be stopped!!!
if selectedRows.one {
NSAnimationContext.beginGrouping()
NSAnimationContext.current.allowsImplicitAnimation = false
NSAnimationContext.current.duration = 0
outlineView.scrollRowToVisible(selectedRows.first!)
NSAnimationContext.endGrouping()
}
}
我的表中有可变高度的行,但是我不明白为什么这会有所作为。从上面的代码中,选择的更改始终在表中的任何移动之前突出显示,进一步表明滚动动画没有被删除。
答案 0 :(得分:0)
我自己遇到了这个问题,并通过将def createDT(c1,c2,c3):
temp = pd.DataFrame(columns = [c1,c2,c3])
print(type(temp))
return temp
DT = createDT("col1","col2","col3")
子类化并像这样覆盖NSClipView
来解决了这个问题:
func scroll(to newOrigin: NSPoint)
对于包含子类剪辑视图的滚动视图,这应该完全禁用平滑滚动,这是您正在描述的动画效果。