J'essaie de lire la largeur et la hauteur de l'imageView dans un tableauView créé automatiquement afin d'effectuer quelques modifications.IOS/Objective-C: Déterminer la taille de imageView dans tableview créé par programmation
Cependant, la méthode que j'utilise normalement renvoie 0 pour la largeur peut-être parce que imageView n'est pas explicitement défini. Est-ce que quelqu'un sait comment faire ceci.
float imageWidth =cell.imageView.frame.size.width;
Note: voilà comment je suis en train de créer tableview:
-(void) makeTableView {
//origin,origin,width,height
_myTableView = [[UITableView alloc] initWithFrame:
CGRectMake(160, 114, 140, 100) style:UITableViewStylePlain];
_myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_myTableView.delegate = self;
_myTableView.dataSource = self;
_myTableView.scrollEnabled = YES;
_myTableView.layer.cornerRadius = 5;
_myTableView.hidden = YES;
_myTableView.backgroundColor = [UIColor grayColor];
_myTableView.rowHeight=24;
_myTableView.layer.borderColor=[UIColor grayColor].CGColor;
_myTableView.layer.borderWidth=1;
[self.view addSubview:_myTableView];
}
Peut-être il y a un moyen de définir les tailles d'image ici, mais je ne sais pas ce que ce serait.
Sinon, je pourrais définir ces valeurs comme here mais cela semble impliquer de sous-classer la tableviewcell ou de modifier le contexte qui est coûteux et qui m'empêche également d'arrondir l'image.
Edit: mon cellForRowAtIndexPath actuelle
me semble être en mesure de définir la taille de la imageView en utilisant le code ci-dessous. Normalement, cependant, le code ci-dessous crée de belles images rondes indépendamment de la taille des images entrantes - tous ne sont pas carrés. Au lieu de cela, certaines images sortent, mais d'autres sortent ovales. Donc, quelque chose ne fonctionne pas ici ...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = nil;
if (tableView == myTableView) {
static NSString *myRowIdentifier = @"myRowIdentifier";
cell = [tableView dequeueReusableCellWithIdentifier:myRowIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault reuseIdentifier:myRowIdentifier] ;
}
Items* item = [_items objectAtIndex:indexPath.row];
cell.textLabel.text = item.name;
NSString*pic = item.pic;
if (pic.length >=3) {
cell.imageView.image = [self loadImageNamed:pic];
}
else {
cell.imageView.image = [UIImage imageNamed:@"placeholder.png"];
}
//Because there is no custom cell, set size of imageview with following code
cell.imageView.frame = CGRectMake(0,
0,
24,
24);
cell.imageView.layer.cornerRadius = cell.imageView.frame.size.width/2;
cell.imageView.clipsToBounds = YES;
cell.imageView.contentMode = UIViewContentModeScaleAspectFill;
}
peut vous montrer votre code 'de cellForRowAtIndexPath'? –