Привлекательные iOS UIButtons во время выполнения - PullRequest
2 голосов
/ 07 апреля 2011

Я использовал Glass Button Generator из здесь для генерации PNG на iOS, которые выглядят как UIGlassButtons, но не используют класс UIGlassButton (так как он является закрытым).Затем они устанавливаются в качестве изображения для пользовательских экземпляров UIButton.Работает очень хорошо и выглядит великолепно.

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

UIButton как есть выглядит довольно некрасиво и ровно.Должен быть какой-то способ создания привлекательных кнопок во время выполнения?

Приветствуются решения, не относящиеся к monotouch, достаточно простые для перевода.

Приветствия заранее.

Ответы [ 3 ]

7 голосов
/ 08 апреля 2011

Я хотел написать свое собственное GlassButton некоторое время, не стесняйтесь вырезать и вставлять его в свой код, я сделал его частью моей библиотеки MonoTouch.Dialog:

https://github.com/migueldeicaza/MonoTouch.Dialog/blob/master/MonoTouch.Dialog/Utilities/GlassButton.cs

Вы используете это так:

 var glossy = new GlassButton (new RectangleF (0, 0, 120, 50)) {
     NormalColor = UIColor.Red,
     HighlightedColor = UIColor.Black,
     DisabledColor = UIColor.Black
 };
 glossy.Tapped += delegate {
      Console.WriteLine ("I have been tapped");
 }
 window.AddSubview (glossy);
1 голос
/ 07 апреля 2011

Подкласс UIButton и добавление UILabel в качестве подпредставления.Это было бы проще сделать в простом C #, чем возиться с Interface Builder.

Предоставить его текстовое свойство и, возможно, другие, такие как размер шрифта и т. Д.

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

0 голосов
/ 14 июня 2011

Вы можете просто поместить кнопку без ничего, а затем закрасить UILabel текстом, фоном UILabel с clearColor, поместить UILabel чуть выше кнопки, она будет выглядеть как часть кнопки.

...