从自定义类向ViewController添加UIButton

时间:2013-03-21 09:48:41

标签: objective-c uibutton

我有一个名为“Menu”的类创建UIButton:

.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视图中显示创建的按钮。有人可以帮我吗?

3 个答案:

答案 0 :(得分:0)

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

只需在init方法中将此按钮添加到viewcontroller的视图:

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

答案 1 :(得分:0)

我认为只需在视图中添加一个按钮即可 拨打:

[self.view addSubview:button]

初始化按钮后,您仍然需要使用addSubview将按钮“添加”到视图中,否则您的按钮将不会在屏幕上绘制。

答案 2 :(得分: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];