2011-07-30 2 views
6

내가 뭘 잘못하지만, 무엇을 잘 모릅니다한다 ..의 UIView setFrame는 문제

를이 코드와 하위 뷰를 추가하려고 :

subMenuView = [[UISubMenuViewMainController alloc] init]; 

[subMenuView.view setFrame:CGRectMake(10,0,990,100)]; 

subMenuView.view.backgroundColor = [UIColor whiteColor]; 

[self.view addSubview:subMenuView.view]; 

은 내가보기에되고 싶어 (10,0을)와 너비/높이 100분의 990

을 가지고 있지만 난

내가 중앙에 10 × 10 평방보기를 원한다면 내가 틀렸다 난 다음 줄을 추가해야하는 경우 나하자 예상 결과를 얻을 해달라고 :

[subMenuView.view setFrame:CGRectMake(512,384,10,10)]; 

그게 내가 얻은 것이 아니고, 위치는 정확하지만 너비/높이는 틀린 생각입니까?

+0

http://stackoverflow.com/questions/18850871/cgrectmake-is-not-working-with-uiview –

답변

7

문제는, 당신은 자동 레이아웃을 사용하는 경우, 호출 setFrame 아무 소용이 없습니다

self.view.autoresizesSubviews = NO; 
0

코드는 약간 틀 렸지만, 하위보기로 추가하기 전에보기의 프레임을 설정하고 있기 때문에 코드가 맞지 않을 수 있습니다. 따라서 subview의 위치는 layoutSubviews에 의해 변경 될 수 있습니다.

코드의 두 번째 줄을 마지막으로 넣고 그 트릭을 수행하는지보십시오. 대신 int 치의

+0

setFrame 및 코드 스 니펫의 끝과 정확히 동일한 문제가 발생합니다. –

+0

내가 추가하지 않았기 때문에 undestand를 사용하지 않습니다. 이 방법으로 다른 컨트롤 (UIButton)을 많이 사용하기 전에 모든 것이 완벽합니다. –

-1

시도하여 수레 :

[subMenuView.view setFrame:CGRectMake(10,0,990,100)]; 

에 :

[subMenuView.view setFrame:CGRectMake(10.0f,0.0f,990.0f,100.0f)]; 
+2

같은 문제는 GCC가 컴파일 타임에 부동 소수점 형으로 캐스팅 할 수 있다고 생각합니다. 어떤 문제라도 –

10

을 설정하여 고정 setFrame 전에 setTranslatesAutoresizingMaskIntoConstraints를 호출 해주세요.

+4

을 YES 또는 NO로 설정 했습니까? 예제를 제공하는 것이 더 낫습니다 – Raptor

+2

무엇을 설정해야하는지 언급해야합니다. – ge0rges

+3

나를 YES로 설정하면 효과적입니다. – Nerrolken