0

通过 NSSlider 在 IKImageView 中设置图像缩放系数的最佳实践是什么?

我能够绑定一个滑块来放大缩小IKImageView 的操作。显然,我宁愿看到一个控制这两个动作的滑块。最好,如果在每次更改滑块后刷新图像(即使尚未释放鼠标按钮,也会持续刷新)。

4

2 回答 2

1

这个演示解释了很多:ImageKitDemo

特别是,这个片段是我正在寻找的:

- (IBAction) zoomSliderDidChange:(id)sender
{
    [addProductPhotoImageView setZoomFactor:[sender floatValue]];
}
于 2009-12-18T16:45:20.433 回答
1

绑定方式是将 IK 图像视图的缩放因子和滑块的值绑定到控制器的相同属性。当滑块改变属性的值时,图像视图将被通知,并将从您的控制器中获取新值。

这种方式的一个优点是您可以添加更多的放大和缩小方式,并且滑块中的值不会过时。举个例子,如果 IKImageView 添加了捏合缩放(或者如果它已经有了——我的 Mac 上没有多点触控),用户可以通过这种方式缩放,并且滑块会自动更新。解决方案不会发生这种情况IBAction

另一个示例是向控制器发送操作消息的放大和缩小菜单命令(可能使用 ⌘+ 和 ⌘- 键盘快捷键)。您的控制器将通过增加或减少属性的值来响应(使用它实现的 setter 方法)。使用 Bindings,图像视图和滑块都将免费更新。如果没有绑定,您将不得不明确地与图像视图和滑块对话,告诉一个更新其缩放因子,另一个更新其滑块。

第三个示例是在窗口一角显示“缩放系数:X%”。使用 Bindings,无论用户如何缩放图像,它都可以免费更新:移动滑块拇指、捏合/松开图像或按下菜单项。如果没有绑定,这将是您在(至少三个)更改缩放值操作方法中必须讨论的另一件事。

于 2009-12-19T00:34:49.343 回答