【发布时间】:2012-02-25 07:42:02
【问题描述】:
我正在寻找一种方法来实现类似UI/NSTableView 的可重用单元格,但对于NSScrollView。基本上,我想要与 WWDC 2011 视频“Session 104 - Advanced Scroll View Techniques”相同,但适用于 Mac。
我在意识到这一点时遇到了几个问题。第一个:NSScrollView 没有-layoutSubviews。我尝试改用-adjustScroll,但未能设置不同的contentOffset:
- (NSRect)adjustScroll:(NSRect)proposedVisibleRect {
if (proposedVisibleRect.origin.x > 600) {
// non of them work properly
// proposedVisibleRect.origin.x = 0;
// [self setBoundsOrigin:NSZeroPoint];
// [self setFrameOrigin:NSZeroPoint];
// [[parentScrollView contentView] scrollPoint:NSZeroPoint];
// [[parentScrollView contentView] setBoundsOrigin:NSZeroPoint];
}
return proposedVisibleRect;
}
接下来我尝试使用百万像素的width 设置一个非常巨大的内容视图(与 iOS 相比,这实际上有效!)但现在的问题是,如何安装重用池?
滚动到新位置时移动子视图还是删除所有子视图并再次插入它们更好?我应该如何以及在哪里这样做?
【问题讨论】:
标签: objective-c reusability nsscrollview infinite-scroll memory-efficient