문제

NSSlider를 통해 IKImageView 내에서 이미지의 확대/축소 비율을 설정하는 가장 좋은 방법은 무엇입니까?

슬라이더를 바인딩할 수 있었습니다. 확대 또는 축소 IKImageView의 동작.분명히 내가 보고 싶은 것은 두 가지 동작을 모두 제어하는 ​​단일 슬라이더입니다.슬라이더를 변경할 때마다 이미지가 새로 고쳐지는 경우(마우스 버튼을 아직 놓지 않은 경우에도 계속) 가장 좋습니다.

도움이 되었습니까?

해결책

이 데모에서는 다음과 같은 많은 내용을 설명합니다. 이미지킷데모

특히, 이 스니펫은 제가 찾던 것입니다:

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

다른 팁

바인딩 방식은 IK 이미지 보기의 확대/축소 비율과 슬라이더 값을 모두 컨트롤러의 동일한 속성에 바인딩하는 것입니다.슬라이더가 속성 값을 변경하면 이미지 보기에 알림이 전송되고 컨트롤러에서 새 값을 가져옵니다.

이 방법의 한 가지 장점은 확대 및 축소하는 방법을 더 많이 추가할 수 있고 슬라이더의 값이 오래되지 않는다는 것입니다.예를 들어, IKImageView에 핀치 확대/축소 기능이 추가된 경우(또는 이미 포함된 경우, 내 Mac에는 멀티 터치가 없음) 사용자가 해당 방식으로 확대/축소할 수 있으며 슬라이더가 자동으로 업데이트됩니다.그런 일은 일어나지 않을 것입니다 IBAction 해결책.

또 다른 예로는 컨트롤러에 작업 메시지를 보내는 확대 및 축소 메뉴 명령(아마도 ⌘+ 및 ⌘- 키보드 단축키 포함)이 있습니다.컨트롤러는 속성 값을 늘리거나 줄여 응답합니다(구현된 setter 메서드 사용).바인딩을 사용하면 이미지 보기와 슬라이더가 모두 무료로 업데이트됩니다.바인딩이 없으면 이미지 보기와 슬라이더 모두에 명시적으로 통신하여 하나는 확대/축소 비율을 업데이트하고 다른 하나는 슬라이더를 업데이트하도록 지시해야 합니다.

세 번째 예는 "확대/축소 요소:X%”가 창 모서리에 표시됩니다.바인딩을 사용하면 사용자가 이미지를 어떻게 확대/축소하더라도 무료로 업데이트할 수 있습니다.슬라이더 썸 이동, 이미지 핀치/핀치 해제, 메뉴 항목 누르기 등이 있습니다.바인딩이 없으면 이는 (최소 3개) 확대/축소 값 변경 작업 메서드에서 다루어야 할 또 다른 사항입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top