est ici la situation actuelle:aide interaction entre la sous-classe compréhension UIViewController et UIView
TestViewController.h:
#import <UIKit/UIKit.h>
@interface TestViewController : UIViewController {
}
@end
TestViewController.m:
#import "TestViewController.h"
#import "draw.h"
@implementation TestViewController
- (void)viewDidLoad {
draw.rectColor = [UIColor colorWithHue:0.6 saturation:0.6 brightness:0.6 alpha:1].CGColor;
[draw setNeedsDisplay];
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)dealloc {
[super dealloc];
}
@end
draw.h:
#import <UIKit/UIKit.h>
@interface draw : UIView {
UIColor* rectColor;
}
@property (retain) UIColor* rectColor;
@end
draw.m:
#import "draw.h"
@implementation draw
@synthesize rectColor;
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
// Initialization code.
}
return self;
}
- (void)drawRect:(CGRect)rectangle {
CGContextRef context = UIGraphicsGetCurrentContext();
CGColorRef myColor = [UIColor colorWithHue:0 saturation:1 brightness:0.61 alpha:1].CGColor;
CGContextSetFillColorWithColor(context, myColor);
CGContextAddRect(context, CGRectMake(0, 0, 95.0, 110.0));
CGContextFillPath(context);
}
- (void)dealloc {
[super dealloc];
}
@end
puis dans l'Interface Builder J'ai créé un UIView de 90x115 et mis sa catégorie identité à « dessiner ». Lorsque j'exécute l'application (sans les deux lignes de non-compilation), il affiche un joli rectangle rouge au milieu de l'écran. Mon but est de pouvoir changer la couleur du rectangle depuis mon TestViewController. Cependant, lorsque je compile l'application test, je reçois les erreurs du compilateur suivantes:
error: accessing unknown 'setRectColor:' class method
error: object cannot be set - either readonly property or no setter found
warning: 'draw' may not respond to '+setNeedsDisplay'
Je sais que je suis absent « un lien » entre mon TestViewController et d'en tirer, mais ne peut pas comprendre comment s'y prendre pour la mettre en œuvre. J'ai essayé différentes astuces, mais rien n'a fonctionné. Quelqu'un pourrait-il expliquer s'il vous plaît ce qui doit être fait pour que
draw.rectColor = [UIColor colorWithHue:0.6 saturation:0.6 brightness:0.6 alpha:1].CGColor;
[draw setNeedsDisplay];
pour compiler et travailler? (J'utiliserais cette connaissance pour créer une méthode différente dans TestViewController, je la teste juste dans viewDidLoad)
hey, j'ai pris les choses de délégué de l'application, car il faisait la question très longue et certainement n'a pas été connecté à cette erreur. J'espère que cela t'aides! –
merci. Je n'étais pas sûr, c'est pourquoi je l'ai mis là. – TrekOnTV2017