如何将实现类似iPhone形式的页面卷动
作者: Cocoa China 【最热的Mac, iPhone专业开发论坛】【本文永久地址】
25
Mar
像iPhone那种用手指拖拽形式的页面卷动在某些情况下很有用。如果是一个比较大的图形或者列表,显然这种滚动形式更容易看清楚。
您只要阅读本文就知道如何简单地实现了。
@implementation Blah
…
- (void) mouseDown: (NSEvent *) event
{
grabOrigin = [event locationInWindow];
NSClipView *contentView;
contentView = (NSClipView*)[layerView superview];
scrollOrigin = [contentView bounds].origin;
} // mouseDown
- (void) mouseDragged: (NSEvent *) event
{
NSPoint mousePoint;
mousePoint = [event locationInWindow];
float deltaX, deltaY;
deltaX = grabOrigin.x - mousePoint.x;
deltaY = mousePoint.y - grabOrigin.y;
NSPoint newOrigin;
newOrigin = NSMakePoint (scrollOrigin.x + deltaX,
scrollOrigin.y + deltaY);
[layerView scrollPoint: newOrigin];
} // mouseDragged
…
@end // Blah
改变鼠标指针的方法是
[[NSCursor closedHandCursor] push];
也可以是 openHandCursor
改回去:
[NSCursor pop];
你可以在mouseDragged的时候设置鼠标指针,mouseUp时恢复。这样看起来感觉更好。
发表评论