2014-02-07 5 views
0

스토리 보드에 배경 이미지가 설정된 세 개의 버튼이 있는데, 배경 이미지는 육각형 모양입니다. 저는 현재 중력을 가지고 놀고 있는데, 버튼을 누르면 화면의 아래쪽으로 모두 들어가기를 원합니다. 그들은 사각형 모양이 아닌 서로 튀어 오를 때 육각형 모양처럼 반응하는 단추를 원합니다.UIDynamics와 함께 사용하기위한 이미지 마스크에 직사각형 버튼 프레임 자르기

UIButtons.frame을 hexagonal.png에 클립하는 방법이 있습니까?

- (IBAction)home:(id)sender { 

    animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; 
    gravity = [[UIGravityBehavior alloc] initWithItems:@[self.youtuberLyr, self.gameLyr, self.homeLyr]]; 
    [animator addBehavior:gravity]; 

    collision = [[UICollisionBehavior alloc] initWithItems:@[self.youtuberLyr, self.gameLyr, self.homeLyr]]; 
    collision.translatesReferenceBoundsIntoBoundary = YES; 
    [animator addBehavior:collision]; 

    barrier = [[UIView alloc] initWithFrame:CGRectMake(0, 1024, 768, 0)]; 
    barrier.backgroundColor = [UIColor redColor]; 
    [self.view addSubview:barrier]; 

    CGPoint rightEdge = CGPointMake(barrier.frame.origin.x + barrier.frame.size.width, barrier.frame.origin.y); 
    [collision addBoundaryWithIdentifier:@"barrier" fromPoint:barrier.frame.origin toPoint:rightEdge]; 
} 

나는 인터넷 검색을 시도했다. 어떤 도움이라도 대단히 감사합니다.

+1

보기의 프레임은 항상 사각형입니다. 충돌 동작을 조정해야합니다. – Putz1103

답변

0

UIKit Dynamics는이 프로토콜에 정의 된 사각형 모양 만 지원합니다.

@protocol UIDynamicItem <NSObject> 
@property (nonatomic, readwrite) CGPoint center; 
@property (nonatomic, readonly) CGRect bounds; 
@property (nonatomic, readwrite) CGAffineTransform transform;  
@end 

어쩌면 SpriteKit의 SKPhysicsBody이 해당됩니다. 특히 hexagon path을이 초기화 프로그램에 전달합니다.

+ (SKPhysicsBody *)bodyWithPolygonFromPath:(CGPathRef)path 
+0

내가보기에, 나는 공정하다고 생각하지는 않을 것이라고 생각합니다. –