У меня такой код:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0.0, 0.0, 25, 25);
[[button layer] setCornerRadius:5.0f];
[[button layer] setMasksToBounds:YES];
[[button layer] setBackgroundColor:[[UIColor redColor] CGColor]];
[button.titleLabel setFrame:CGRectMake(0,0, 25, 25)];
[button setTitle:[NSString stringWithFormat:@"%@", [[topics objectAtIndex:indexPath.row] unread]] forState:UIControlStateNormal];
Проблема в том, что если строка в тексте не длинная, она отображается нормально (1-2 цифры). Однако, когда он довольно длинный (цифра 3 ++), все, что я вижу, - это красную кнопку без текста внутри. Как мне это отрегулировать?
Я так не думаю:
[button.titleLabel setAdjustsFontSizeToFitWidth:YES];
делает работу, верно?
ios
objective-c
штольня
источник
источник
titleButton.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
Ответы:
Попробуй это:
Я не уверен, почему это так, но это так :)
источник
numberOfLines
на 0должен выполнять работу самостоятельно, если вы используете Auto-Layout и установили ограничение на ширину кнопки.
Другие параметры (минимальный масштабный коэффициент, количество строк и т. Д.) Можно использовать для дальнейшей настройки в соответствии с вашими потребностями, но они не требуются.
источник
Ответ от EliBud не работает на iOS 8. Я нашел решение, которое работает на iOS 8. Ниже приведен быстрый код:
Вы можете поиграть с label? .LineBreakMode, поскольку я обнаружил, что результаты различаются для разных режимов перерыва.
источник
в последнем быстром это, похоже, работает для меня
источник
Решение iOS 10.3 на основе других ответов здесь:
baselineAdjustment
Еще никто не упомянул ; Мне это было нужно, потому что послеadjustsFontSizeToFitWidth
вступления в силу метка кнопки становится смещенной по вертикали .baselineAdjustment
Документация Apple :FWIW, мне никогда не удавалось идеально выровнять этикетку.
источник
adjustsFontSizeToFitWidth
не работал у меня, пока я не установил ограничение ширины для моей кнопки в Interface Builder.Установка ограничения не позволяла кнопке увеличиваться в размере и, следовательно, не осознавать, что она должна сжимать текст.
источник
Расширение Swift 4
источник
на основе ответа Ника Кова:
источник
Решение Xamarin.iOS
Я закончил тем, что установил размер шрифта, чтобы он был «большим», прежде чем система настроит размер, чтобы он соответствовал.
источник
В iOS 13.1 со Swift 5 мне пришлось
contentEdgeInsets
также настроить отступы.источник
Ниже решение сработало для меня:
В документации разработчика это свойство объясняется следующим образом:
источник