我有一个 IKImageBrowserView
,我希望能够在最近的 Mac 笔记本电脑上使用多点触控触控板进行捏合缩放。
Cocoa 事件处理指南,在 Handling Gesture Events 部分说:
The magnification accessor method returns a floating-point (CGFloat) value representing a factor of magnification
..然后显示通过将高度和宽度乘以放大率 + 1.0
来调整 View 大小的代码。
这似乎不是缩放 IKImageBrowserView
的正确方法,其 zoomValue
属性被限制在 0.0 和 1.0 之间。
那么,有谁知道如何解释 -[NSResponder magnifyWithEvent:]
中的事件来缩放 IKImageBrowserView
?
最佳答案
这就是我所做的,在 Snow Leopard 上运行得非常好:
在 10.6 中,NSEvent
具有“放大”方法,该方法将返回正确的数量。您所要做的就是将其添加到旧值,例如[imageBrowser ZoomValue]+[event magnification]
。
- (void)magnifyWithEvent:(NSEvent *)event
{
if ([event magnification] > 0)
{
if ([self zoomValue] < 1)
{
[self setZoomValue:[self zoomValue] + [event magnification]];
}
}
else if ([event magnification] < 0)
{
if ([self zoomValue] + [event magnification] > 0.45)
{
[self setZoomValue:[self zoomValue] + [event magnification]];
}
else
{
[self setZoomValue:0.45];
}
}
}
这里的 self 是一个 IKImageBrowserView
子类。我在这里设置了一个阈值,以便 zoomValue
不能小于 0.45,但这正是我喜欢的方式。
最诚挚的问候, 马蒂亚斯,永恒 Storm 软件
关于cocoa - 如何解释触控板捏合手势来缩放 IKImageBrowserView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1807590/