Nano Hash - криптовалюты, майнинг, программирование

Почему к моему UILabel добавляется так много дополнительного места, когда я пытаюсь изменить высоту, чтобы она соответствовала тексту?

Понятия не имею, почему высота моего UILabel увеличивается до такой высоты. Остается текст моего UILabel в центре. Я не хочу лишнего места ...

Нежелательное лишнее пространство

Вот мой код (я установил текст перед этой точкой):

self.infoDescription.numberOfLines = 0;
[self.infoDescription sizeToFit];
self.infoDescription.frame = CGRectMake(20, self.infoAdultSize.frame.size.height+self.infoAdultSize.frame.origin.y+10, self.infoView.frame.size.width-40, self.infoDescription.frame.size.height);

Пожалуйста, помогите :( Я просто хочу, чтобы высота UILabel точно соответствовала тексту.

30.11.2015

  • просто попробуйте поменять местами код этикетки, сначала установите рамку, а затем размер, соответствующий этикетке. 30.11.2015
  • Это сработало! Спасибо. 30.11.2015
  • пожалуйста, проголосуйте за мой ответ, если он будет полезен 30.11.2015
  • Возможный дубликат Как получить размер NSString 30.11.2015

Ответы:


1

Сначала установите рамку, а затем размер по размеру этикетки.

  **self.infoDescription.frame = CGRectMake(20, self.infoAdultSize.frame.size.height+self.infoAdultSize.frame.origin.y+10, self.infoView.frame.size.width-40, self.infoDescription.frame.size.height);
    [self.infoDescription sizeToFit];**
30.11.2015
  • Вау, работает плавно. 12.01.2016

  • 2

    Попробуй это:

    CGSize maximumSize = CGSizeMake(300, 9999);
    NSString *myString = @"This is a long string which wraps";
    UIFont *myFont = [UIFont fontWithName:@"Helvetica" size:14];
    CGSize myStringSize = [myString sizeWithFont:myFont 
                               constrainedToSize:maximumSize 
                                   lineBreakMode:self.myLabel.lineBreakMode];
    

    (исходный источник)

    30.11.2015

    3

    Пожалуйста, проверьте этот ответ, он работает для меня, и это именно то, что вы ищут.

    //Calculate the expected size based on the font and linebreak mode of your label
    // FLT_MAX here simply means no constraint in height
    CGSize maximumLabelSize = CGSizeMake(296, FLT_MAX);
    
    CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font constrainedToSize:maximumLabelSize lineBreakMode:yourLabel.lineBreakMode];   
    
    //adjust the label the the new height.
    CGRect newFrame = yourLabel.frame;
    newFrame.size.height = expectedLabelSize.height;
    yourLabel.frame = newFrame;
    
    30.11.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..