0

通過NSSlider在IKImageView中設置圖像的縮放比例的最佳做法是什麼?由NSSlider控制的IKImageView縮放

我能滑塊綁定要麼在放大或縮小變焦出IKImageView的行動。 顯然,我想看到的是一個滑塊控制這兩個動作。 最好,如果每次更換滑塊後都會刷新圖像(即使鼠標按鍵未釋放,也是如此)。

回答

1

這個演示解釋了很多:ImageKitDemo

特別是,該片段是我一直在尋找:

- (IBAction) zoomSliderDidChange:(id)sender 
{ 
    [addProductPhotoImageView setZoomFactor:[sender floatValue]]; 
} 
+0

您需要先設置滑塊的「minValue」和「maxValue」,最有可能是在IB中。 – 2009-12-19 00:27:53

+0

這是正確的,以及連續狀態。 – 2009-12-19 10:53:07

1

的綁定方式對雙方都是綁定IK圖像視圖縮放係數和滑塊的值與控制器的屬性相同。當滑塊更改屬性的值時,圖像視圖將被通知,並將從控制器獲取新值。

這種方式的一個優點是您可以添加更多的放大和縮小方式,並且滑塊中的值不會過時。舉一個例子,如果IKImageView增加了捏縮放功能(或者它已經有了 - 我的Mac上沒有多點觸控功能),用戶可以通過這種方式進行縮放,滑塊將自動更新。 IBAction解決方案不會發生這種情況。

另一個例子是將操作消息發送到控制器的放大和縮小菜單命令(可能帶有⌘+和⌘-鍵盤快捷鍵)。您的控制器會通過增加或減少屬性的值來響應(使用它實現的setter方法)。使用綁定,圖像視圖和滑塊將免費更新。如果沒有綁定,則必須明確地與圖像視圖和滑塊進行對話,告訴用戶更新其縮放因子,而另一個用於更新其滑塊。

第三個例子是窗口一角的「變焦倍數:X%」顯示。使用綁定,無論用戶如何縮放圖像,都可以免費更新:移動滑塊,捏/取圖像或按菜單項。如果沒有綁定,這將是另一件事,你必須在你的(至少三個)改變縮放值操作方法中與之交談。