2011-07-30 7 views
6

que debe hacer algo malo, pero no sé qué ..UIView setFrame problema

intento agregar una vista secundaria con este código:

subMenuView = [[UISubMenuViewMainController alloc] init]; 

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

subMenuView.view.backgroundColor = [UIColor whiteColor]; 

[self.view addSubview:subMenuView.view]; 

Quiero mi punto de vista para estar en (10,0) y tienen 990/100 de anchura/altura

pero yo no obtener el resultado esperado

Let me si me equivoco, si quiero una vista cuadrado de 10x10 en el centro tengo que añadir la siguiente línea:

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

Eso no es lo que obtengo, la posición es correcta, pero el ancho/alto es incorrecto, alguna idea?

+0

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

Respuesta

7

problema fijo mediante el establecimiento de

self.view.autoresizesSubviews = NO; 
0

El código es un poco poco convencional, pero supongo que es porque está configurando el marco de la vista antes de agregarlo como subvista. Por lo tanto, la posición de la subvista probablemente sea modificada por layoutSubviews antes de verla.

Intente poner la segunda línea de código al final y vea si eso funciona.

+0

Obtengo exactamente el mismo problema con setFrame y el final del fragmento de código –

+0

No lo entiendo porque estoy agregando un muchos otros controles (UIButton) con este método antes y todo funciona perfecto. –

-1

Intente utilizar flotadores en lugar de INT:

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

a:

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

mismo problema, creo que GCC puede convertir mi int para flotar en tiempo de compilación sin ningún problema –

10

si se utiliza el diseño automático, el setFrame llamada no tienen uso, intente llamar a setTranslatesAutoresizingMaskIntoConstraints antes de setFrame

+4

establecido en SÍ o NO? Es mejor proporcionar el ejemplo – Raptor

+2

. Debe mencionar en qué debería establecerse. – ge0rges

+3

Configurarlo como SÍ funcionó para mí. – Nerrolken