L'INTERFACE utilisateur personnalisée de Changement de Vue taille de l'image

J'ai un custom UIView qui dessine une image dans le tirage au sort rect méthode. Mon problème est UIView veut de moi, initWithFrame quand je allouer l'objet. L'image de la vue doit être la même que la taille de l'image et de la largeur. Le problème est que je ne comprends pas que la taille de l'image et de largeur jusqu'à ce que la méthode drawRect de la vue, je suis en train de créer. À l'intérieur de la drawRect vue de la modification de la UIView de l'image à la taille de l'image ne semble pas avoir d'effet. Donc, ce que je veux faire, c'est quelque chose comme ceci:

MyCustomView *myCustomView = [[MyCustomView alloc] initWithFrame: CGrectMake(0,0,0,0)];

Puis à l'intérieur de MyCustomView de la méthode drawRect je veux changer quelque chose à l'image de la vue à la taille du cadre de l'image, je suis en train de créer.

Comment puis-je obtenir mon résultat souhaité? Un pas, la création de l'image avant que je init mon affichage personnalisé et de mettre la taille des dimensions dans l'initWithFrame n'est pas une option.

C'est mon code actuel dans le point de vue de la méthode drawRect

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%@",self.imgName]];
CGSize imgSize = [image size];
CGRect newrect = CGRectMake(self.frame.origin.x, self.frame.origin.y, imgSize.width, imgSize.height);
self.frame = newrect; //This does nothing!!
CGRect imgRect = CGRectMake(0, 0, imgSize.width, imgSize.height);
[image drawInRect:imgRect];

OriginalL'auteur spentak | 2011-11-02