kee*_*n3d 8 cocoa objective-c nstableview
我正在尝试实现一个动作来滚动到NSTableView的顶部,以及NSTableView的底部.我正在使用,scrollRowToVisible但我喜欢动画的动作.有没有办法做到这一点?
小智 22
虽然NSTableView没有可以直接设置动画的滚动属性,但您可以使用一些数学动画来设置NSTableView所在的NSClipView的滚动动画.
下面是我如何做到这一点(在NSTableView的自定义子类中),以便在rowIndex中平滑地动画化行,以便滚动到视图的中心,如果可能的话:
NSRect rowRect = [self rectOfRow:rowIndex];
NSRect viewRect = [[self superview] frame];
NSPoint scrollOrigin = rowRect.origin;
scrollOrigin.y = scrollOrigin.y + (rowRect.size.height - viewRect.size.height) / 2;
if (scrollOrigin.y < 0) scrollOrigin.y = 0;
[[[self superview] animator] setBoundsOrigin:scrollOrigin];
Run Code Online (Sandbox Code Playgroud)
pfa*_*ade 16
如果您的目标是10.8+并且您的表视图是图层支持的,则可以执行以下操作:
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context){
context.allowsImplicitAnimation = YES;
[self.tableView scrollRowToVisible:someRow];
} completionHandler:NULL];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4857 次 |
| 最近记录: |