2015-02-26 2 views
1

Итак, у меня есть кнопка 60x60 на моей раскадровке и задайте для нее класс.Swift: настройка ширины и высоты в классе UIButton

class CustomRedButton: UIButton { 

    required init(coder aDecoder: NSCoder) { 

     super.init(coder: aDecoder) 

     self.layer.cornerRadius   = 0.5 * self.bounds.size.width 
     self.backgroundColor   = UIColor.redColor() 
     self.titleLabel!.font   = UIFont(name: "Futura", size: 25) 
     self.titleLabel!.textAlignment = .Center 

    } 
} 

То, что я хочу сделать, это изменить размер кнопки, а шрифт в нем, в зависимости от размера экрана.

+0

Удалось устранить большинство из этого замечательного учебника по адаптивным макетам, но все равно предпочтет сделать это с помощью кода ... http://mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus/ – Swifting

ответ

0

Использовать view.bounds.maxX и view.bounds.maxY в ViewController при его инициализации.

Это то, что я делаю, но меняет только ширину, а не высоту или размер шрифта.

button1 = UIButton(frame: CGRect(x: 0, y: 0, width: (view.bounds.maxX/2) - 10, height: 50)) 
    button1.center = CGPoint(x: view.bounds.midX - button1.bounds.width/2 - 5, y: view.bounds.maxY - 160) 

    button2 = UIButton(frame: CGRect(x: 0, y: 0, width: (view.bounds.maxX/2) - 10, height: 50)) 
    button2.center = CGPoint(x: view.bounds.midX + button1.bounds.width/2 + 5, y: view.bounds.maxY - 160) 

    button3 = UIButton(frame: CGRect(x: 0, y: 0, width: (view.bounds.maxX/2) - 10, height: 50)) 
    button3.center = CGPoint(x: view.bounds.midX - button1.bounds.width/2 - 5, y: view.bounds.maxY - 100) 

    button4 = UIButton(frame: CGRect(x: 0, y: 0, width: (view.bounds.maxX/2) - 10, height: 50)) 
    button4.center = CGPoint(x: view.bounds.midX + button1.bounds.width/2 + 5, y: view.bounds.maxY - 100) 

Чтобы сделать это на высоте установить высоту (view.bounds.maxY/16 (или любой другой номер его до вас)) - 10 (расстояние между кнопками раз 2) и изменить центральную точку отражают изменения в высоте

Чтобы сделать то же самое для размера шрифта, используйте view.bounds.maxX и разделите его примерно на 40. Вы получаете идею.

Смежные вопросы