2014-12-19 84 views
0

今天我对你有一个非常简单的问题,但我作为Newby我有一些问题来解决我的问题。 Google不会帮助我。无法设置UIView子类的属性

我有我的ViewController,我有一个第二类“Messestand” 在ViewController我有一个接口,用户输入一些浮点数据。

这个数据,我将转移到Messestand级,其中其置于网格

这里是我的代码:

@interface Messestand : UIView { 

} 
float faktor; 
@property (assign, nonatomic) float breite; 
@property (assign, nonatomic) float laenge; 
@end 

Messestand.h

这其的代码我ViewController:

-(IBAction)transfer:(id)sender { 
    NSString *varlaenge = eingabelaenge.text; 
    NSString *varbreite = eingabebreite.text; 
    Messestand.laenge.value = [varlaenge floatValue]; 
    Messestand.breite.value = [varbreite floatValue]; 
    ausgabebreite.text = [NSString stringWithFormat:@"%.1f",varbreite]; 
    ausgabelaenge.text = [NSString stringWithFormat:@"%.1f",varlaenge]; 
    [self.view endEditing:YES]; 
    [self.view addSubview:GrundrasterView]; 
} 

DatenuebertragungViewController.m

从编译器中的输出误差其在线路: Messestand.laenge.value = [varlaenge的floatValue]; Messestand.breite.value = [varbreite floatValue];

我的问题IST,什么是正确的语法广告的用户界面输入的号码,方便Messestand级Instanzes(Laenge,breite)

回答

2

它看起来像你实际上并没有实例化一个Messestand对象。您尝试将值分配给该类。 (或者你命名你的变量非常错误的)

不管怎么说,而不是

Messestand.laenge.value = [varlaenge floatValue]; 
Messestand.breite.value = [varbreite floatValue]; 

你想这样做:

Messestand *messestand = [[Messestand alloc] init]; 
messestand.laenge = [varlaenge floatValue]; 
messestand.breite = [varbreite floatValue]; 
0

好吧,这里的解决方案代码:

NSString *varlaenge = eingabelaenge.text; 
NSString *varbreite = eingabebreite.text; 
Messestand *messestand = [[Messestand alloc] init]; 
messestand.laenge = [varlaenge floatValue]; 
messestand.breite = [varbreite floatValue]; 
ausgabelaenge.text = [NSString stringWithFormat:@"%.1f",messestand.laenge]; 
ausgabebreite.text = [NSString stringWithFormat:@"%.1f",messestand.breite]; 
NSLog(@"%@, %@",varlaenge ,varbreite); 
NSLog(@"%f, %f",messestand.laenge ,messestand.breite); 
[self.view endEditing:YES]; 
[self.view addSubview:GrundrasterView]; 

但现在一个新的问题: 当我添加视图(GrundrasterView,类是Messestand)的(LAE NGE & breite)是(空):(

目标是用户输入的长度和重量,并在接下来的视图(GrundrasterView)其放置在网格上的视图

-(void)drawRect:(CGRect)rect { 
int x1; 
faktor = 450/breite; 
x1 = faktor * laenge; 
if (x1 > 300) { 
    faktor = 300/laenge; 
} 
NSLog(@"faktor: %f", faktor); 
NSLog(@"Länge: %@", laenge); 
NSLog(@"Breite: %@", breite); 

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetLineWidth(context, 1.0); 
CGContextSetStrokeColorWithColor(context, [UIColor grayColor].CGColor); 
CGContextSetLineWidth(context, 2.0); 
CGRect rectangel = CGRectMake(10, 10, breite*faktor, laenge*faktor); 
CGContextAddRect(context, rectangel); 
CGContextStrokePath(context); 
CGContextSetLineWidth(context, 1.0); 
for (int i = 1; i < breite; i++) { 
    CGContextMoveToPoint(context, (i*faktor)+10, 10); 
    CGContextAddLineToPoint(context, (i*faktor)+10, laenge*faktor+10); 
    CGContextStrokePath(context); 
} 
for (int i = 1; i < laenge; i++) { 
    CGContextMoveToPoint(context, 10, (i*faktor)+10); 
    CGContextAddLineToPoint(context, breite*faktor+10, (i*faktor)+10); 
    CGContextStrokePath(context); 
} 
} 
-(void)dealloc { 
    [super dealloc]; 
} 
@end 

或者IST是什么更好的时候我把所有的代码放在ViewController .m中?