Ensemble UIImageView Taille?
j'ai le problème suivant: je créer des sous-vues UIView dans un UIScrollView y compris UIImageViews.
NSArray *bilder = [[NSArray alloc] initWithObjects:@"lol.jpg", @"lol2.jpg", nil];
NSArray *added = [[NSMutableArray alloc] init];
UIImageView *tmpView;
for (NSString *name in bilder) {
UIImage *image = [UIImage imageNamed:name];
tmpView = [[UIImageView alloc] initWithImage:image];
tmpView.contentMode = UIViewContentModeScaleAspectFit;
tmpView.frame = CGRectMake(0, 0, 300, 300);
[added addObject:tmpView];
[tmpView release];
}
CGSize framy = mainFrame.frame.size;
NSUInteger x = 0;
for (UIView *view in added) {
[mainFrame addSubview:view];
view.frame = CGRectMake(framy.height * x++, 0, framy.height, framy.width);
}
mainFrame.scrollEnabled = YES;
mainFrame.pagingEnabled = YES;
mainFrame.contentSize = CGSizeMake(framy.height * [added count], framy.width);
mainFrame.backgroundColor = [UIColor blackColor];
- je obtenir des noms de fichier d'image d'un tableau. maintenant, je veux redimensionner l'imageview à une taille spécifique, mais il ne fonctionne pas. des conseils?
merci + ce qui concerne
OriginalL'auteur Tronic | 2010-04-22
Vous devez vous connecter pour publier un commentaire.
UIImage
manque desetSize:
méthode deNSImage
, mais ce post semble ajouter unscaleToSize:
méthode à l'aide d'une catégorie surUIImage
.Êtes-vous le redimensionnement de l'image avant d'appeler
[[UIImageView alloc] initWithImage:image]
? La façon dont j'ai lu la documentation deinitWithImage:
, il doit provoquer laUIImageView
pour correspondre à la taille de l'image.ouais, en fait, je fais UIImage *image = [UIImage imageNamed:nom]; puis UIImage *smallImage = [image scaleToSize:CGSizeMake(100,100)]; et puis je alloc la UIIMageView avec tmpView = [[UIImageView alloc] initWithImage:smallImage]; mais l'imageview garde plein écran, vérifié avec un backgroundcolor!
Il y a trois choses que j'ai pu voir en cours de causes possibles (bien qu'ils ne semblent pas probable): 1. Vous êtes l'image de 100x100, mais l'affichage de l'image 300x300; 2.
tmpView.contentMode = UIViewContentModeScaleAspectFit;
(qui ne devrait pas être nécessaire avec leUIImage scaleToSize:
, je crois); et 3. la possibilité quemainFrame
est en quelque sorte responsable de la mis-dimensionnement lorsque leUIImageView
est ajouté en tant que sous-châssis. Depuis je n'en fais pas UIKit/iPhone trucs moi-même (juste AppKit/MacOSX), je suis assez d'idées au-delà.Oh, en fait, 1 plus d'idée pour essayer d'isoler le problème, si rien d'autre: journal le cadre de la
UIImageView
immédiatement aprèsinitWithImage:
, immédiatement aprèstmpView.frame = ...
, avant et après[mainFrame addSubview:view];
, et aprèsview.frame = ...
et voir si cela donne des indices quant à l'endroit où la vue est de se retrouver en plein écran.OriginalL'auteur Isaac
Changement tmpView.cadre de l'utilisation d'un nouvel CGRect:
Essayez d'utiliser CGRectOffset à simplement déplacer le cadre vers le bas. Qui devrait garder la taille d'origine intact. Quelque chose qui peut aussi aider temporairement le réglage des couleurs de fond de tous les points de vue pour vous assurer que tous les éléments autres que le UIImageView est l'affichage de l'endroit où vous voulez qu'il soit.
Essayez d'utiliser des [[UIImageView alloc] initWithFrame:...] et le réglage de l'image plus tard. Cela devrait ne pas affecter l'affichage de l'image.
OriginalL'auteur MrHen
Ce que je vois, c'est:
Mais si vous regardez CGRectMake...
Vous définissez la valeur de X, pas de la valeur de Y. J'attends, basé sur vos appels à:
que vous avez l'intention de faire de ces images apparaissent sur le dessus les uns des autres, pas de l'autre côté.
Suggèrent:
à
Puis il me conduit à: mainFrame.contentSize = CGSizeMake(framy.hauteur * [ajouté le comte], framy.la largeur); voudriez-vous pas: mainFrame.contentSize = CGSizeMake(framy.hauteur, framy.widtht * [ajouté count];
OriginalL'auteur gnasher