extends
в ограничении типа фактически охватывает оба:
T имеет тип PBaseHierarchical или T «расширяет» PBaseHierarchical
blockquote>Почти так же, как T: PBaseHierarchical в C #.
Также обратите внимание, что типы сравниваются структурно в Typescript.
Как и другие люди Скажем, вам не нужно создавать подкласс UIButton - на самом деле лучше не делать этого, поскольку UIButton довольно сложен (как вы обнаружили). У вас есть три варианта:
addTarget: action: forControlEvents:
). UIButton реализует контроль состояния поверх этого. Если ты не Мне не нужны такие вещи, как UIButton setTitle: forState:
и связанные с ними функциональные возможности, но вы используете множество этих элементов управления, я бы использовал третий вариант. В противном случае используйте первое (или второе, если вы используете 3.0).
На основании вашего комментария к одному из других ответов, это случай вопроса "Как мне сделать X с Y, чтобы достичь Z?" когда вы действительно должны спросить «Как мне добиться Z?»
Если вы хотите, чтобы кнопка рисовала текст поверх изображения, а не рядом с ним, просто сделайте изображение фоновым изображением кнопки. Используйте setBackgroundImage: forState:
, а не setImage: forState:
, затем установите заголовок обычным образом.
В любом случае вам придется нарисовать изображение в drawRect:
или переместите текст в подпредставление, чтобы он рисовался над изображением. Решение, которое я упомянул, является версией второго варианта.
Как насчет добавления подпредставления поверх вида кнопки? Тогда вы будете иметь полный контроль над ним и не будете заботиться о том, что сделала кнопка. Вы могли бы даже сделать это Label и сохранить себя в DrawRect.
Вам не нужно создавать подкласс UIButton только для того, чтобы добавить к нему текст. Вот пример установки заголовка кнопки для пользовательской кнопки в методе -viewDidLoad подкласса UIViewController:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 44, 44);
[button setTitle:@"x" forState:UIControlStateNormal];
[self.view addSubview:button];
Вы также можете установить свойство шрифта для вашей кнопки или изменить цвет, используя -setTitleColor: forState:.