NSImageview se vide apres une rotation de superview

GenoseGenose Membre
octobre 2005 modifié dans API AppKit #1
salut,

je vient de réussir de mettre une image dans ma NSIMAgeView et tout heureux de mon exploit( quand meme !) je fait faire a ma vue NSView une rotation.

et là  !

surprise !

comment ?! plus d'image ! (m'exclafais-je)

- serais-ce le rotateframe qui fasse cela ?! (m'interrogeais-je)


et c'est alors que j'enleva le rotateFrame. Apres une recompilation, mon image ravie ses couleurs, mais sans la position vertical  avec laquelle je finisait par la voir dans  mon idée.


moralité : une vue qui pose probleme est vision qui se limite à  une idée;


qui peut me donner une solution à  cette faceitie ?

merci.

[Fichier joint supprimé par l'administrateur]

Réponses

  • Eddy58Eddy58 Membre
    15:29 modifié #2
    Ca représente quoi ton image ? ???
    Sinon, montre nous ton code, ça sera plus facile de voir d'où vient le problème...
  • GenoseGenose Membre
    octobre 2005 modifié #3
    ben voici le code qui fonctionne trés bien jusque le rotationFrame, mon image est ci-jointe, et elle disparait bien, apres la rotation, pour voir l'image sans la rotation changer y_pos =0;


    <br /><br /><br />	id wind = [self&nbsp; window];<br />	NSView l *titleview = [[NSView&nbsp; alloc]init];<br />	int y_pos = ((int)[wind frame].size.width); // mettre y_pos = 0 si non utilisation du FrameRotate<br />	// 	NSLog(@&quot;%ld&quot;,y_pos&nbsp; );<br />	<br />	[titleview initWithFrame:NSMakeRect(y_pos,0,((int)[wind frame].size.height) ,64)];<br />	 <br />	NSImageView *image_view= [[NSImageView alloc]initWithFrame:NSMakeRect(0,0,64,64)];<br />	<br />	[image_view setImageFrameStyle:NSImageFramePhoto&nbsp; ];<br />	NSImage&nbsp; *image ;<br />	//NSLog(@&quot;image %@&quot;,image);<br />	image =[NSImage imageNamed:@&quot;default_service_icon&quot;];<br />	//NSLog(@&quot;%@&quot;,image);<br />	if(image)<br />		if([image isValid]){<br />			[image_view setImage:image];<br />			<br />			<br />		}else{<br />			NSLog(@&quot;Image can&#39;t be found : defaulticon &quot;);	<br />		}<br />	<br /><br />	[titleview&nbsp; addSubview:image_view];<br />	[titleview setFrameRotation:90];<br />	<br />	[[wind&nbsp; contentView]&nbsp;  addSubview:titleview];<br />	<br />	<br /> <br />	[wind display];<br />	//<br />	[image release];<br />//<br />	[titleview release];<br />	<br />return TRUE;	<br />
    



    qui peut expliquer  cette disparition ?

    [Fichier joint supprimé par l'administrateur]
  • ChachaChacha Membre
    15:29 modifié #4
    dans 1129759444:

    qui peut expliquer  cette disparition ?


    Je crois que je peux. La rotation tourne autour de l'origine (0, 0), donc comme c'est un des coins de ta view, ben l'image en sort complètement !
    Pour t'en convaincre, tourne de 45° seulement
    Pour résoudre ce problème, utilise une NSAffineTransform pour rajouter une translation

    +
    Chacha
  • GenoseGenose Membre
    octobre 2005 modifié #5
    ;) merci de la piste mais j'obtient soit rien soit qu'une portion de l'image.

    j'ai  beau chercher  je n'obtient pas grand chose.  :(



    [Fichier joint supprimé par l'administrateur]
  • ChachaChacha Membre
    15:29 modifié #6
    dans 1129836421:

    j'ai  beau chercher  je n'obtient pas grand chose.  :(


    En fait il ne faut pas confondre la rotation de la vue elle-même (elle "bouge" dans la fenêtre) et la rotation de son contenu (que tu dois gérer toi-même dans le drawRect).
    Je te propose le bout de code ci-joint pour voir la différence
    Il s'appelle titi parce que toto est déjà  pris par autre chose.

    +
    Chacha


    [Fichier joint supprimé par l'administrateur]
Connectez-vous ou Inscrivez-vous pour répondre.