Je suis en train de passer un CGRect:Essayer de passer CGRect à performSelector withObject
SEL frameSel = NSSelectorFromString(@"setFrame:");
CGRect rect = CGRectMake(10, 10, 200, 100);
[object performSelector:frameSel withObject:rect ];
Mais cela ne compile pas
J'ai aussi essayé:
SEL frameSel = NSSelectorFromString(@"setFrame:");
CGRect rect = CGRectMake(10, 10, 200, 100);
NSValue * value = [NSValue valueWithCGRect:rect];
[object performSelector:frameSel withObject:value ];
En fait, cela ne compiler mais quand je debug, le cadre est pas correctement paramétré:
po object
<UILabel: 0x39220f0; frame = (0 0; 200 100); text = 'reflectionLabel'; clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x3922240>>
Mais ce devrait être frame = (10 10; 200 100)
Comment puis-je résoudre ce problème?
Merci d'avance!
objet est de type NSObject * Je ne peux pas dire simplement object.frame je vraiment besoin d'utiliser NSObject * >>> Eh bien, ce n'est pas de la foutaise, il semblerait donc que cela a fonctionné, même si l'origine est restée en quelque sorte nulle. Vous voudrez peut-être poser une question distincte à ce sujet. J'ai vraiment besoin d'une réponse à cette question. Merci! –
Si vous savez qu'il possède une propriété 'frame', placez-le dans' UIView * ', puis utilisez' object.frame = rect'. Si vous ne savez pas qu'il possède une propriété 'frame', utilisez KVC (http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/KeyValueCoding/) pour définir la propriété et intercepter l'exception Cela arrivera s'il n'en a pas. –