4

MonoTouch.CoreGraphics 클래스를 사용하여 항목을 그리는 UIControl을 정의하고 UIControl을 AddSubview를 통해 UIView에 넣습니다. 저는 시계를 보거나 시계 나 다이얼에서 분 또는 초침과 같은 움직임을 시뮬레이션하기 위해 모든 것을 돌리려고합니다. UIView에서 Transform을 사용하여이 작업을 수행 할 수 있다고 생각합니다.Transform을 사용하여 MonoTouch에서 UIView 회전시키기

내 UIView의 이름은 컨테이너입니다. 나는 시도했다 :

container.Transform.Rotate(-0.78f); 

나는 또한 시도 :

CGAffineTransform t = CGAffineTransform.MakeIdentity(); 
    t.Rotate(-0.78f); 
    container.Transform = t; 

나는 또한 시도 :

:

CGAffineTransform t = CGAffineTransform.MakeRotation(-0.78f); 
    container.Transform = t; 

나는 또한이 다른 조합을 시도했다

UIView.BeginAnimations("rotate"); 
    UIView.SetAnimationDuration(0.5); 
    container.Transform.Rotate((float)Math.PI); 
    UIView.CommitAnimations(); 

위의 항목 중 어느 것도 내 디스플레이에 mpact. 그것은 조금도 회전하거나 움직이지 않습니다. 모든 iOS 관련 게시물은 CGAffineTransformRotate를 참조하지만,이를 위해 Mono exact match를 찾을 수 없으며 위에서 수행 한 것과 동일하다고 가정합니다. 내보기를 회전 시키려고 노력해야하는 다른 방법이 있습니까?

+0

CGAffineTransformRotate에 해당하는 것은 호출하는 affine을 회전시키는 CGAffineTransform.Rotate() 메서드입니다. 코드가 정확합니다. 진짜 문제는 "컨테이너"입니다. 이게 뭐야? 복제하려는 효과가있는 곳에서 코드를 공유 할 수 있습니까? –

+0

회전 바퀴를 만들어 모노톤으로 포팅하는 방법에 관한 기사를 읽고 있습니다. 나는 그려야 할 모양을 가지고 있고, 타이머를 사용하여 회전 시키려고하는 부분에서 멈 춥니 다. 다음은 기사 http://www.raywenderlich.com/9864/how-to-create-a-rotating-wheel-control-with-uikit에 대한 링크입니다. 내 UIControl 클래스에서 잘 작동하는 DrawWheel 메서드가 있습니다. 내 휠 컨트롤의 인스턴스를 만들고 AddSubview를 사용하여 UIView에 추가합니다. 제가 작성한 모든 코드를 보내 드리겠습니다. 네가 나에게 보낼 곳을 알려주지. –

+0

코드를 공유하는 가장 쉬운 방법은 http://bugzilla.xamarin.com에서 버그 보고서를 열고이 질문에 대한 링크와 함께 코드를 첨부하는 것입니다. – poupou

답변

2

올바른 길을 가고 있습니다. 나는 개발중인 커다란 게임을 가지고 있으며,이 모든 것을 내 코드에서 수행한다. 다음은 내가 제공 할 수있는 가장 간단한 예입니다.

using MonoTouch.CoreGraphics; 

float degrees = 15; 
UIView aView = new UIView(new RectangleF(10,10,10,10)); 
aView.Transform = CGAffineTransform.MakeRotation(3.14159f * degrees/180f); 

그게 전부입니다.

예제는 스파 스, 특히 MakeRotation 함수가 라디안 (즉, 파이를 도수로 변환하는 데 사용됨)이라는 사실에 기인합니다.

+0

나는 그것을 작동시킬 수 있었다. 몇 가지로 밝혀졌습니다. 1은 타이머를 사용하여 이벤트를 발생시키고이를 시도하는 것을 좋아하지 않는다는 것입니다. 명시 적으로 주 스레드에서 코드를 호출 할 때도 아무 것도하지 않습니다. 또한 캔버스 크기를 늘 렸습니다. 타이머 사용을 중단하고 위의 크기를 늘린 후에도 효과가있었습니다. –

+0

MonoTouch에서 예정된 타이머 만 작동한다는 것을 알고 있습니다. 0d로 예약 된 타이머를 지연으로 사용해보십시오. –