2013-03-21 43 views
1

我有一类名为 “菜单” 创建的UIButton添加的UIButton到的ViewController:从自定义类

.h文件中:

@interface Menu : NSObject 

@property (strong) Forme *forme; 
@property (strong) NSString *imageButtonName; 
@property (strong) UIButton *button; 

- (id) initWithClef:(int)clef hauteur:(int)hauteur largeur:(int)largeur posY:(int)posY posX:(int)posX alpha:(float)alpha imageButtonName:(NSString*)imageButtonName button:(UIButton*)button; 

@end 

.m文件:

#import "Menu.h" 

@implementation Menu 

@synthesize forme = _forme; 
@synthesize button = _button; 
@synthesize imageButtonName = _imageButtonName; 

- (id) initWithClef:(int)clef hauteur:(int)hauteur largeur:(int)largeur posY:(int)posY posX:(int)posX alpha:(float)alpha imageButtonName:(NSString *)imageButtonName button:(UIButton *)button 
{ 
    if ((self = [super init])) 
     { 
      NSLog (@"test2"); 
      self.forme =[[Forme alloc]initWithClef:clef hauteur:hauteur largeur:largeur posY:posY posX:posX alpha:alpha]; 
      self.button = button; 
      [button setFrame:CGRectMake(largeur, hauteur, posX, posY)]; 
      [button setBackgroundImage:[UIImage imageNamed:imageButtonName] forState:UIControlStateNormal]; 
     } 
    return self; 
} 

我想自动将创建的按钮显示到ViewController视图。有人可以帮助我吗?

回答

0

以及OnView参数添加到您的initClef ....

- (id) initWithClef:(int)clef hauteur:(int)hauteur largeur:(int)largeur posY:(int)posY posX:(int)posX alpha:(float)alpha imageButtonName:(NSString *)imageButtonName button:(UIButton *)button onView:(UIView *)view 
{ 
    if ((self = [super init])) 
    { 
     NSLog (@"test2"); 
//  self.forme =[[Forme alloc]initWithClef:clef hauteur:hauteur largeur:largeur posY:posY posX:posX alpha:alpha]; 
     self.button = button; 
     [button setFrame:CGRectMake(largeur, hauteur, posX, posY)]; 
     [button setBackgroundImage:[UIImage imageNamed:imageButtonName] forState:UIControlStateNormal]; 
     [view addSubview:button]; 

    } 
    return self; 
} 

调用它的viewController

Menu * menu2=[[Menu alloc] initWithClef:1 hauteur:30 largeur:30 posY:30 posX:30 alpha:1 imageButtonName:@"arti.png" button:b onView:self.view]; 
+0

谢谢!它的工作原理..但是现在我想从第三课开始。所以onView不能是“self.view”。你有什么主意吗? – alex777771 2013-03-22 09:57:20

+0

我找到了解决方案,谢谢! – alex777771 2013-03-22 10:10:26

0

我想你应该阅读一些手册和教程

只需添加此按钮的ViewController的看法在init方法:

[button setBackgroundImage:[UIImage imageNamed:imageButtonName] forState:UIControlStateNormal]; 
[self.view addSubview:button]; 
+0

我都尝试过,但它不工作。我还试过:UIViewController * newview = [[UIViewController alloc] init]; [newview.view addSubview:self.button]; – alex777771 2013-03-21 10:05:12

+0

分享到更多的代码来帮助 – 2013-03-21 10:06:25

+0

在我的viewDidLoad方法:Menu * play = [[Menu alloc] initWithClef:1 hauteur:100 largeur:300 posY:100 posX:50 alpha:1 imageButtonName:@“play.png”button: [[UIButton alloc] init]];比如果我添加[self.view addSubview:按钮];在viewDidLoad它的作品。但我真的想在init方法中自动显示我的按钮。谢谢 – alex777771 2013-03-21 10:16:07

0

我认为,简单地增加一个按钮到视图应该做的的伎俩, 电话:

[self.view addSubview:button] 

你的按钮,你S中的初始化之后直到需要使用addSubview将该按钮添加到视图,否则您的按钮不会在屏幕上绘制。

+0

谢谢,但它不起作用.. – alex777771 2013-03-21 10:06:36

+0

检查你的参数在你的初始化。那些有效的宽度和高度? – 2013-03-21 10:10:25

+0

Yes:Menu * play = [[Menu alloc] initWithClef:1 hauteur:100 largeur:300 posY:100 posX:50 alpha:1 imageButtonName:@“play.png”button:[[UIButton alloc] init]]; – alex777771 2013-03-21 10:18:24