2015-04-12 2 views
9

У меня есть панель инструментов с кодом ниже; Я хотел бы добавить изображение, которое отображается с помощью «Инструменты», называемого «toolsIcon.png».Как показать изображение на панели инструментов с помощью Objective-C

Ниже мой код:

//BottomBar 

    UIToolbar *toolbar = [[UIToolbar alloc] init]; 
    toolbar.frame = CGRectMake(0, self.view.frame.size.height - 44, self.view.frame.size.width, 44); 
    [self.view addSubview:toolbar]; 
    [toolbar release]; 

    //TOOLBAR ITEMS 
    //button 1 
    UIBarButtonItem *tools = [[UIBarButtonItem alloc] initWithTitle:@"Tools" style:UIBarButtonItemStyleBordered target:self action:@selector(createToolView)]; 
    [tools setTag:0]; 



    //add the buttons to the toolbar 
    NSArray *buttons = [NSArray arrayWithObjects: tools,nil]; 
    [toolbar setItems: buttons animated:YES]; 
    //memory management for buttons - don't waste! 
    [tools release]; 
+0

Похоже, вы не используете ARC, и вам действительно нужно. Или вы просто нашли код где-нибудь? – marosoaie

+0

Прекратить использование релиза больше не нужно. Попробуйте это. http://stackoverflow.com/questions/9926978/how-to-add-images-to-uitoolbar Ответьте на результат. –

+0

где код для добавления изображения? –

ответ

7

Вы можете создать UIBarButtonItem с изображением и добавить его

UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithImage: yourImage style: UIBarButtonItemStyleBordered target: nil action: nil]; 
3

Поскольку вы говорите тулбар я предполагаю, что вы говорите о нижней панели у вас есть два варианта:

  1. Используйте UIBarButtonItem с вашим изображением в качестве текстуры и удалите пользовательский интерфейс действия для него.

  2. Создайте UIView, который содержит ImageView для вашего png и назначьте его как дочерний элемент панели инструментов.

Я предпочитаю второй подход, если мне не понадобится это изображение в качестве кнопки в будущем.

код вам нужно, это довольно стандартная ...

Objective-C

UIView *customView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 66, 33)]; 
UIImageView *toolsImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"Tools.png"]]; 

toolsImage.frame = CGRectMake(0, 0, 66, 33); 
[customView addSubview: toolsImage]; 

//And then you add it as a child of your toolbar... 

Swift 3

let customView = UIView(frame: CGRect(x: 0, y: 0, width: 66, height: 33)) 
let toolsImage = UIImageView(image: UIImage(named: "Tools")) 

toolsImage.frame = CGRect(x: 0, y: 0, width: 66, height: 33) 
customView.addSubview(toolsImage) 

//And then you add it as a child of your toolbar... 

Я надеюсь, что было полезно ! :)

2

enter image description here

Самый простой способ уронить UIButton в customView пункта, например, так:

UIToolbar * toolbar = [UIToolbar new]; 
toolbar.frame = CGRectMake(0, h-44, w, 44); 
[self.view addSubview:toolbar]; 

UIButton * button = [UIButton new]; 
button.frame = CGRectMake(0, 0, 44, 44); 
[button setImage:[[UIImage imageNamed:@"tools-128.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal]; 
[button setTintColor:[UIColor redColor]]; 
[button.imageView setContentMode:UIViewContentModeScaleAspectFit]; 
[button setImageEdgeInsets:UIEdgeInsetsMake(8, 8, 8, 8)]; 

//good 
UIBarButtonItem * toolItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 

//bad 
UIBarButtonItem * itemB = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"tools-48.png"] style:UIBarButtonItemStylePlain target:self action:nil]; 
[itemB setImageInsets:UIEdgeInsetsMake(8, 8, 8, 8)]; 

//worse 
UIBarButtonItem * itemC = [UIBarButtonItem new]; 
[itemC setBackgroundImage:[UIImage imageNamed:@"tools-48.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

[toolbar setItems:@[toolItem, itemB, itemC] animated:true]; 

Это может быть полезным качению свой собственный тулбар, в зависимости от того, что хочу достичь.

2

Вы можете инициализировать экземпляр UIBarButtonItem изображением и установить его в UIToolbar. Вставьте приведенный ниже код в viewDidLoad метод UIViewController.

UIToolbar *toolbar = [[UIToolbar alloc] init]; 
toolbar.frame = CGRectMake(0, self.view.frame.size.height - 44, self.view.frame.size.width, 44); 

UIBarButtonItem *tool = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"your_image"] style:UIBarButtonItemStylePlain target:self action:@selector(methodCalledOnClick)]; 
[toolbar setItems: @[tool] animated:YES]; 
[self.view addSubview:toolbar]; 
Смежные вопросы