슬롯 머신 어플 리케이션을위한 다른 방법이 있습니까? 이것은 UIPICKER 메서드가 느린 애니메이션 효과를 가지지 않기 때문입니다.UIPicker의 대안
답변
CALayer
애니메이션을 사용하여 수행 할 수 있습니다.
하위 레이어의 3D 변환을 허용하려면 기본 slotMachineView 레이어의 클래스가 CATransformLayer
이어야합니다.
릴에있는 기호를 나타내는 10 개의 정사각형 이미지가 있다고 가정 해 보겠습니다. 각 이미지에 대해 CALayer
을 작성하십시오. content 속성은 이미지 중 하나입니다. 이는 당신 '(번역
- 먼저 각 레이어를 회전해야합니다 (2 * PI)/10 약간의 거리를 그런 다음 각 계층에 당신이 변환을 적용해야합니다 계산할 필요가 있습니다) Z 축 따라.
이제보기 레이어에이 레이어를 추가하십시오. 이제 X 축을 중심으로 이미지의 "실린더"를 볼 수 있습니다.
실린더를 회전하려면 첫 번째 변환을 CAAnimation
으로 조정하거나 타이머를 사용하고 타이머가 작동하는 오프셋으로 X 축 회전을 조정해야합니다.
나는 전체 구현 세부 사항을 파악하는 당신에게 그것을 떠날거야 -하지만 여기
int imageCount = 16;
for (int i = 0; i < imageCount; i++) {
// Load image from the bundle
NSString * fileName = [NSString stringWithFormat: @"Image-%d", i];
NSString * filePath = [[NSBundle mainBundle] pathForResource: fileName ofType: @"jpeg"];
UIImage * image = [UIImage imageWithContentsOfFile: filePath];
// Create a layer with the image as content - My image size was 60x60
CALayer * imageLayer = [CALayer layer];
imageLayer.bounds = (CGRect){CGPointZero, {60.0, 60.0}};
imageLayer.contents = (id)image.CGImage;
imageLayer.position = (CGPoint){CGRectGetMidX(self.view.bounds), CGRectGetMidY(self.view.bounds)};
// Set the initial image transform - I've hardcoded the translate along the
// z-axis to 150, but this will vary depending on the number of images
// and their size - you'll need to do some maths to work it out... sines or
// cosines or somesuch
CGFloat angle = (2.0 * M_PI)/imageCount * i;
CATransform3D transform = CATransform3DMakeRotation(angle, 1.0, 0.0, 0.0);
transform = CATransform3DTranslate(transform, 0.0, 0.0, 150.0);
imageLayer.transform = transform;
[self.layers addObject: imageLayer];
[self.view.layer addSublayer: imageLayer];
}
}
그것을 회전하려면로드 및 초기 "릴"을 만들 수있는 몇 가지 코드, 당신이해야 할 모든 변화는 변환의 회전 부분 여분의 크레디트를 얻으려면 레이어에서 중심으로 멀어 질수록 그림자가 증가합니다.
그래서 NSArray/NSMutable Array에 이미지를 놓고 레이어를 변형할까요? –
좋은 아이디어. UIPickerView는 외부 그래픽과 결합 된 휠의 환상을주기 위해 상단 및 하단에 그림자 그라디언트가있는 것처럼 보입니다. 휠의 숫자/텍스트가 변형되지 않습니다. – bandejapaisa
@bandejapaisa 그래서 가장 좋은 방법은 무엇입니까? 캐롤라이나? –
각 숫자/기호에 UIImageView
을 사용할 수 있으며 표시되는 이미지의 움직임을 애니메이션으로 나타낼 수 있습니다. UIPicker
을 사용하면 문자와 숫자로 제한됩니다. UIImageView
으로 체리와 같은 다른 전형적인 슬롯 머신 영상을 추가 할 수 있습니다.
어떻게 스핀 효과를 적용 할 수 있습니까? –
@Kobe Core Animation을 적용하는 등 직접 구현해야합니다. 이것은 아마도이 과제의 요점 일 것이다. – dasblinkenlight
어디서 UIImageView에 대한 이미지를 저장할 수 있습니까? –
우리는 숙제를하고 있습니까?
세로 UIScrollViews를 나란히 사용하고 페이징을 사용 가능하게 설정하고 뷰에 대해 UIImageViews를 사용하십시오.
기본적으로 플랫하게 보일 것입니다. 그러나 기능면에서는 동일합니다.
UIPickerView처럼 보이게하려면 약간의 Core Animation/Core Graphics가 필요합니다.
예, UIScrollView의 메소드를 호출하여 자동으로 스크롤 할 수 있으며 계속 스크롤 할 수 있습니다. – bandejapaisa
UIImageViews에 NSArray/NSMutable Array를 사용할 수 있습니까? 그래서 내 이미지를 저장할 수 있습니까? –
예, 배열을 사용할 수 있습니다. – bandejapaisa
- 1. UIPicker의 높이
- 2. uipicker의 스크롤링 사운드를 제어하는 방법은 무엇입니까?
- 3. UIPicker의 첫 번째 행의 값을 얻으십시오.
- 4. UIPicker의 선택 막대에 텍스트를 설정하는 방법
- 5. 대안 setAttribute에 대한 대안
- 6. 대안
- 7. 대안
- 8. 대안
- 9. 대안()
- 10. 대안?
- 11. 대안
- 12. 대안
- 13. 대안
- 14. 대안
- 15. 대안
- 16. 대안
- 17. 대안
- 18. 대안
- 19. 대안
- 20. NoSQL에 무료로 대안 (ravendb하는 대안)
- 21. VSTO 대안
- 22. range.getBoundingClientRect의 대안
- 23. Inflector.Net의 대안
- 24. java.util.Vector - 대안
- 25. SVG 대안?
- 26. 폴링 대안
- 27. PathListBox의 대안
- 28. LIST 대안
- 29. 평가 대안
- 30. PowerGadgets 대안
나는 TableView를 제안합니다. 선택 도구 대신 모든 데이터를로드하고 원하는 데이터를 선택할 수 있습니다. – Hemang
그리고? 스핀 동작을 적용 할 수 있습니까? –
@Kobe 스핀 동작이 필요하지 않습니다. UITableView에서는 가로 스크롤러를 사용할 수 있습니다. 따라서 아무런 제한없이 사용할 수 있습니다. –