Как программно добавить кнопку с изображением - PullRequest
1 голос
/ 24 марта 2011

Я создаю кнопку программно.Но это не может исправить на экране.Помогите мне в решении этой проблемы.

Скриншот:

enter image description here

UIImage *image = [UIImage imageNamed:@"request.png"];
UIBarButtonItem *button2;

//[button2 setWidth:55];
button2= [[UIBarButtonItem alloc] initWithImage:image style:UIBarStyleDefault target:self action:@selector(requestButton)];

self.navigationItem.rightBarButtonItem = button2;

[button2 release];

Ответы [ 4 ]

4 голосов
/ 24 марта 2011

Я обычно так делаю:

self.myButton = [UIButton buttonWithType:UIButtonTypeCustom];

[myButton setImage:[UIImage imageNamed:@"button_normal.png"] forState:UIControlStateNormal];
[myButton setImage:[UIImage imageNamed:@"button_pressed.png"] forState:UIControlStateHighlighted];
myButton.frame = CGRectMake(0, 0, 121, 36);

[myButton addTarget:self action:@selector(doSomething) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem * aBarButton = [[[UIBarButtonItem alloc] initWithCustomView:myButton] autorelease];

[toolbar setItems:[NSArray arrayWithObjects:aBarButton, nil]];
3 голосов
/ 24 марта 2011
UIImage *image = [UIImage imageNamed:@"request.png"];    
UIButton* requestButton = [UIButton buttonWithType:UIButtonTypeCustom];
[requestButton setImage:image forState:UIControlStateNormal];
[requestButton addTarget:self action:@selector(requestButton) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithCustomView:requestButton];
self.navigationItem.rightBarButtonItem = button2;
0 голосов
/ 20 июля 2016

Я обычно создаю UIImageView, затем UITapGestureRecognizer и добавляю его в UIImageView, и, наконец, я создаю UIBarbuttonItem:

    //UIImageView where the image is shown
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageName"]];
    imageViewSettings.frame = CGRectMake(0, 0, 25, 25);
    imageViewSettings.contentMode = UIViewContentModeScaleAspectFit;

    //TapGesture
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(methodToTrigger)];

    //Adding the gesture to the ImageView
    [imageView addGestureRecognizer:tapGesture];

    //Creating the barButtonItem
    UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:imageView];

    //Finally add the button to the navigationBar
    self.navigationItem.rightBarButtonItem = barButtonItem;
0 голосов
/ 24 марта 2011
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];

[myButton setImage:[UIImage imageNamed:@"request-1.png"] forState:UIControlStateNormal];

myButton.frame = CGRectMake(0, 0, 80, 36);

[myButton addTarget:self action:@selector(requestButton) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem * aBarButton = [[[UIBarButtonItem alloc] initWithCustomView:myButton] autorelease];


self.navigationItem.rightBarButtonItem = aBarButton;



[myButton release];
...