В общем да на все ваши вопросы. Вы можете создавать подклассы различных классов UI *, которые составляют сенсорные элементы управления Cocoa, как и любые другие классы, и добавлять свои собственные пользовательские функции в соответствующие методы. Единственная сложность - выяснить, куда именно должен идти ваш код.
Давайте посмотрим на ваш пример UIButton и пройдемся по тому, что вы хотите с ним сделать.
Фоновое изображение
Класс UIButton уже имеет метод setBackgroundImage:forState:
, который позволяет изменять UIImage, отображаемый кнопкой, когда он находится в одном из нескольких состояний, таких как «Нормальный», «Выделенный», «Отключенный» и т. Д.
Например, чтобы изменить изображение, кнопка отображается как обычный фон на "backgroundImage.png", который является файлом изображения в комплекте вашего приложения:
//Presuming you have some UIButton *button:
UIImage *bgImage = [UIImage imageNamed:@"backgroundImage.png"];
[button setBackgroundImage:bgImage forState:UIControlStateNormal];
Увеличивается
Вы можете изменить frame
кнопки (унаследованное свойство от UIView), добавив метод для этого в файл .m контроллера view, который управляет кнопкой, а затем добавив этот метод в качестве действия для управляющего события на кнопка.
Допустим, вы хотите удвоить размер кнопки. В viewDidLoad:
или в другом месте добавьте следующий код:
[button addTarget:self action:@selector(growButton)
forControlEvents:UIControlEventTouchDown];
Затем создайте метод growButton
со следующим кодом:
- (void)growButton {
CGRect currentFrame = button.frame;
CGRect newFrame = CGRectMake(currentFrame.origin.x - currentFrame.size.width / 2,
currentFrame.origin.y - currentFrame.size.height / 2,
currentFrame.size.width * 2,
currentFrame.size.height * 2);
button.frame = newFrame;
}
Это удваивает размер вашей кнопки, при этом ее центр остается прежним. (Будьте осторожны, когда вы делаете эту кнопку, она не пересекает края вашего обзора.)
Смена шрифта
Просто измените свойство font
UIButton - установите для него новый экземпляр UIFont, как в этом примере:
button.font = [UIFont systemFontOfSize:16.0];
Изменяет шрифт кнопки на системный шрифт размером 16.
Пользовательский шрифт
Это довольно сложный вопрос, так как я уверен, что вы не сможете загрузить свои собственные файлы шрифтов, даже если вы включите их в свой пакет приложений. Однако вы можете изменить шрифт по умолчанию для элемента управления с помощью метода класса UIFont fontWithName:size:
. Все названия шрифтов доступны через методы UIFont familyNames
и fontNamesForFamilyName:
.
Кнопка графики вместо текста
Это самый простой из пяти - просто не устанавливайте текст на кнопке, а вместо этого установите фоновое изображение для UIControlStateNormal
(см. Выше).