Estoy tratando de pasar una CGRect:tratando de pasar a CGRect performSelector withObject
SEL frameSel = NSSelectorFromString(@"setFrame:");
CGRect rect = CGRectMake(10, 10, 200, 100);
[object performSelector:frameSel withObject:rect ];
Pero esto no compila
También probé:
SEL frameSel = NSSelectorFromString(@"setFrame:");
CGRect rect = CGRectMake(10, 10, 200, 100);
NSValue * value = [NSValue valueWithCGRect:rect];
[object performSelector:frameSel withObject:value ];
En realidad, esto hace compilar pero cuando depuro, el marco no está configurado correctamente:
po object
<UILabel: 0x39220f0; frame = (0 0; 200 100); text = 'reflectionLabel'; clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x3922240>>
Pero debe ser frame = (10 10; 200 100)
¿Cómo puedo resolver este problema?
¡Gracias de antemano!
objeto es de tipo NSObject * No puedo decir simplemente object.frame Es realmente necesario utilizar NSObject * >>> Bueno, no es basura, por lo que parece que funcionó, aunque el origen de alguna manera se mantuvo en cero. Es posible que desee hacer una pregunta por separado sobre eso. Realmente necesito una respuesta sobre esa pregunta. ¡Gracias! –
Si sabe que tiene una propiedad 'frame', empújela a' UIView * 'y luego use' object.frame = rect'. Si no sabe que tiene una propiedad 'frame', use KVC (http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/KeyValueCoding/) para establecer la propiedad, y capture la excepción que sucederá si no tiene uno. –