2015-04-22 5 views
0

Я не могу установить название для моего UIButton используя стандартный [button setTitle:@"Title"..] я сейчас размещения UILabel на вершине UIButton, но я не могу получить этикетку, чтобы быть выровнены идеально в auto-layout.
Примечание: У меня есть изображение для UIButtonУстановить название для UIButton, который имеет изображение

+0

При выборе изображения в пачке из выпадающего вкладки на правой стороне –

ответ

0

Установить изображение на фоне кнопки. Затем заголовок должен быть виден.

Если вам по-прежнему необходимо разместить ярлык на кнопке, вы можете добавить ограничения автоматического макета в код. Они работают в этой ситуации.

Edit: Пример в Swift для использования в Playground:

import UIKit 
import XCPlayground 

let hostView = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 480)) 

hostView.layer.borderWidth = 1 
hostView.layer.borderColor = UIColor.grayColor().CGColor 

let button = UIButton.buttonWithType(.Custom) as! UIButton 
button.backgroundColor = UIColor.redColor() 

hostView.addSubview(button) 
button.setTranslatesAutoresizingMaskIntoConstraints(false) 
button.setTitle("This is a really long title for this button", forState: .Normal) 
button.titleLabel!.numberOfLines = 0 

NSLayoutConstraint.activateConstraints(NSLayoutConstraint.constraintsWithVisualFormat("|-50-[button(100)]", options: nil, metrics: nil, views: ["button": button])) 
NSLayoutConstraint.activateConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-50-[button(100)]", options: nil, metrics: nil, views: ["button": button])) 

XCPShowView("Host View", hostView) 
+0

это works..but мне нужно обновление по этому вопросу. .i означает, могу ли я увеличить количество строк заголовка, например, я могу установить в UILabel, чтобы содержимое не выходило за границы кнопки? –

+1

Установите свойство 'numberOfLines' textLabel кнопки на 0 и сделайте кнопку достаточно большой. – dasdom

+0

не могу заставить его работать. Какой именно синтаксис? –

0

Вы можете использовать Использовать UIButton с заголовком и изображениями, но вы должны заботиться изображений и название edgeInset, например [btn setTitleEdgeInsets:UIEdgeInsetsMake(70.0, -150.0, 5.0, 5.0)];

также посмотреть answer для Детальная информация

-1

В этом случае, я хотел бы предложить создать свой собственный вид. Создать вид и включают метку и UIImageView как подобозрения

RootView:
++++++++++++
UIImageView
------------- ---------
UILabel
++++++++++++

Затем вы можете добавить tapgesture к rootview, чтобы имитировать поведение кнопки.

+0

Чтобы воссоздать 'UIButton', кажется, это перебор в этой ситуации. – dasdom

1

Установить кнопку Фоновое изображение и установить название на кнопку

[button setBackgroundImage:[UIImage imageNamed:@"yourButtonImageName"] forState:UIControlStateNormal]; 
[button setTitle:@"Title" forState:UIControlStateNormal]; 
[button.titleLabel setNumberOfLines:0]; 
Смежные вопросы