|
Hola, os cuento, he creado una vista personalizada que añado a mi vista principal:
la cuestión es la siguiente al añadirla me aparece en la parte superior izquierda de la pantalla, y necesito que aparezca en una posicion diferente, he leído que es porq la propiedad bounds se fija a (0,0) por defecto y que las coordenadas de frame y bounds son distintas, la vista personalizada tiene los metodos de deteccion de toques (touchbegan...), y mi pregunta es la siguiente como puedo cambiar de posicion la vista y que coincidan frame y bounds. (he encontrado esto: frame.origin = center - bounds.size/2, pero la verdad no se como utilizarlo) gracias. |
|
Tu error podria estar en drawImage.frame = self.frame Si el self.frame tiene el origin.x o el origin.y diferente de 0 , el drawImage tambien sera desplazado dentro del vistaPers. lo que creo que quieres hacer es:
tener en cuenta que el sistema de coordenadas de drawImage y el vistaPers son diferentes. StaS mil gracias, efectivamente el error era ese estaba tomando mal el sistema de coordenadas de drawImage, ahora el tema esta en conseguir que no me salga un enorme cuadro negro y se vea la configuracion que le doy en Interface Builder, le he creado un IBOutlet para VistaPers (IBOutlet CustomView *vistaPers;) y así q sea mas sencillo introducir imagenes etc, pero no sale la configuracion, lo he unido mediante el file`s owner del viewController que maneja la vista pero no parece funcionar.
(11 Ene '12, 17:51)
isis_87
sorry , no entiendo nada. (cuadros negros, configuraciones...?) Es otra pregunta o es la misma?
(11 Ene '12, 17:58)
StaS
para vistaPers que es de tipo CustomView (hereda de uiview y es la clase que tiene el initWithFrame), quiero que cargue un .xib determinado para poder colocar mas facilmente los elementos graficos (botones, imagenes, ...), el IBOutlet CustomView *vistaPers; lo tengo en el ViewController y en su .xib tengo la vistaPers unida mediante IB. Es decir:
Mientras que CustomView tiene .h y .m, y quiero que dependiendo de una comprobacion de un valor en el viewController se cargue para CustomView uno u otro .xib
(12 Ene '12, 09:25)
isis_87
|
|
Frame y Bounds son dos cosas diferentes: Frame es el rectángulo donde se encuentra la vista, con un origen determinado y un tamaño concreto. Bounds, sin embargo, es un rectángulo del mismo tamaño que el frame cuyo origen está en el 0, 0. Por tanto, esto que dices de como hacer que coincidan frame y bounds no tiene mucho sentido: sólo coincidirán si el origen de tu vista es el punto 0, 0 de su superview. Por otra parte, ¿dónde has definido el frame de vistaPers que utilizas en la inicialización? Lo que deberías comprobar es el valor de origen que tiene vistaPers.frame, porque seguramente sea 0, 0 y por eso te aparece en la esquina superior izquierda. Yo haría lo siguiente:
Donde origenX y origenY son las coordenadas del origen que deseas. Saludos. la definicion de frame que tengo es: vistaPers.frame=CGRectMake(40.,40.,200,200); consigo que la vista se sitúe donde quiero pero cuando se detectan los toques es como que lo hace desplazado tanto en el eje X como en el Y, la vista personalizada se encarga de dibujar lo que dibuja el usuario con el dedo, el codigo de initWithFrame en vistaPers.m es el siguiente:
VistaPers tiene ese metodo mas los metodos de tratamiento de toques, nose si el problema es que la vista personalizada dibuja siguiendo sus coordenadas y por eso en la vista principal aparecen las cosas desplazadas. Alguna idea? y gracias por responder.
(11 Ene '12, 16:15)
isis_87
|
|
Hola de nuevo, no se que pasa pero no soy capaz de cargar para mi vista personalizada un .xib, alguien me puede decir mas o menos como puedo hacerlo teniendo initWithFrame como metodo de inicializacion o como unir en el ViewController una vista del tipo de mi CustomView y no tener que ajustar por codigo todo el contenido de la vista. gracias adelantadas. si usas .xib's tienes que usar initWithCoder , no initWithFrame
(13 Ene '12, 19:15)
StaS
perdon por la ignorancia pero no entiendo como se utiliza initWithCoder para cargar un xib, ni lo q debo implementar en dicho metodo, yo creía q initWithCoder era mas para cosas de archivado.
(14 Ene '12, 16:39)
isis_87
|