2011-02-24 6 views
7

UIbuttons를 가지고 놀고 있는데, 실제로 그들과 함께 할 수있는 것에 대한 느낌을 얻으려고합니다. 지금까지 단 하나의 문제가 있습니다 :* 수정 * UIbutton 위치 (Iphone SDK)

어떻게해야합니까 UIButton의 위치를 ​​수정합니까?

- (IBAction)buttonClicked:(id)sender 
{ 
    UIButton *senderB = sender; 

    CGPoint position = senderB.frame.origin; 
    CGSize size = senderB.frame.size; 
    senderB.frame = CGRectMake(position.x,position.y + 10,size.width,size.height); 
} 

위의 작품은 잘하지만, 모든 시간에 대한 새로운 CGrect를 만드는 나는에 단순히 변화 하나가 나에게 오히려 비효율적 인 것 같다합니다.

senderB.frame.origin.x 등의 값을 직접 설정할 수있는 방법이 있습니까?

답변

5

아니합니다. 'someview.frame'은 참조 나 포인터 등이 아닌 값으로 CGRect를 반환합니다. 그래서 'Lvalue required'오류가 발생합니다.

그러나 프레임을 설정하는 것은 충분히 빠릅니다.

+0

안녕하세요, 답변 주셔서 감사합니다 :) 잘 알고 있습니다! –

13

나는 보통 이런 식으로 작업을 수행합니다

CGRect buttonFrame = button.frame; 
buttonFrame.origin.y += 10; 
button.frame = buttonFrame; 
+0

재미있는 방법! 도움이 될 것입니다 :) –

+0

그 코드를 읽을 수있게 유지, +1 – 11684

4

프레임 속성은 읽기 전용입니다. 할 수있는 일은 현재 프레임을 복사하는 것입니다.

CGRect btFrame = senderB.frame; 
btFrame.origin.x += 10; 
senderB.frame = btFrame;