Domanda

Ho un UIImageView che visualizza un'immagine più grande. Sembra essere centrato, ma vorrei spostare l'immagine all'interno di quella UIImageView. Ho guardato il moveme campione da parte di Apple, ma io non riusciva a capire come lo fanno. Sembra che essi non hanno nemmeno un UIImageView per questo. Tutte le idee?

È stato utile?

Soluzione

Risposta originale è stato sostituito da Core Animation in iOS4.

Quindi, come Pollice d'oro dice: è possibile farlo accedendo CALayer del UIView. In particolare la sua contentRect:

di Apple Documenti : il rettangolo, nell'unità di coordinate spazio, che definisce la porzione del contenuto del livello che deve essere utilizzato. Animatable.

Altri suggerimenti

Quello che vi serve è qualcosa di simile (mostrando ad esempio il 30% del 30% dell'angolo in alto a sinistra dell'immagine originale):

imageView.layer.contentsRect = CGRectMake(0.0, 0.0, 0.3, 0.3);

Descrizione "contentsRect": Il rettangolo, nell'unità di coordinate spazio, che definisce la porzione del contenuto del livello che devono essere utilizzati.

Vuoi visualizzare l'immagine in modo che è contenuto all'interno del UIImageView ? In questo caso basta cambiare il contectMode di UIImageView a UIViewContentModeScaleToFill (se formato è irrilevante) o UIViewContentModeScaleAspectFit (se si desidera mantenere le proporzioni)

In IB, questo può essere fatto impostando la modalità di ispettore.

Nel codice, si può fare come

yourImageView.contentMode = UIViewContentModeScaleToFill;

Nel caso in cui si desidera visualizzare l'immagine grande come è all'interno di un'UIImageView , il modo migliore e più semplice per farlo sarebbe quello di avere la visualizzazione delle immagini all'interno di un UIScrollView. Che modi si sarà in grado di ingrandire e rimpicciolire a immagine e anche spostarla.

La speranza che aiuta.

Non suona come il campione moveme fa niente di quello che vuoi. Il PlacardView in essa è la stessa dimensione dell'immagine utilizzata. L'unico cambiamento di formato fatto si tratta di una vista trasformare, che non per effetto di viewport dell'immagine. A quanto mi risulta, si dispone di una grande immagine, e vuole mostrare una piccola finestra in esso. Non c'è un semplice metodo di classe per fare questo, ma non v'è una funzione che è possibile utilizzare per ottenere i risultati desiderati:. CGImageCreateWithImageInRect (CGImageRef, CGRect) ti aiuterà

Ecco un breve esempio di usarlo:

CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);
[UIImageView setImage:[UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);

Grazie mille. Ho trovato una soluzione abbastanza semplice che assomiglia a questo:

CGRect frameRect = myImage.frame;
CGPoint rectPoint = frameRect.origin;
CGFloat newXPos = rectPoint.x - 0.5f;
myImage.frame = CGRectMake(newXPos, 0.0f, myImage.frame.size.width, myImage.frame.size.height);

Ho appena spostare la cornice intorno. Succede che alcune parti del telaio che vanno fuori dal porto vista di iPhone, ma spero che questo non importa molto. V'è una maschera su di esso, in modo che non sembra strano. L'utente non totice come è fatto.

È possibile ottenere la stessa da:

UIImageView *imgVw=[[UIImageView alloc]initwithFrame:CGRectMake(x,y,height,width)];     
imgVw.image=[UIImage imageNamed:@""];
[self.view addSubView imgVw];
imgVw.contentMode = UIViewContentModeScaleToFill;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top