UILabel *sentence = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, CARD_WIDTH*0.9, CARD_HEIGHT/4)]; //создаем объект, который будет являться нашим View
sentence.textColor = [UIColor blackColor]; //задаем цвет текста
sentence.backgroundColor = [UIColor yellowColor];
sentence.lineBreakMode = NSLineBreakByWordWrapping;
sentence.numberOfLines = 0;
sentence.font = wordsFont;
sentence.text = self.card.firstWordSentence; //какой-нибудь текст
sentence.adjustsFontSizeToFitWidth = YES; //можно сделать, чтобы текст автоматически уменьшался, если не помещается, при этом увеличиваться больше заданного размера (или системного, если размер не задан) текст не будет
CGSize boundedStringSize = [sentence sizeThatFits:CGSizeMake(CARD_WIDTH, CARD_HEIGHT/4)];
[self addSubview:sentence]; //добавляем наш текст в иерархию View
увы вот этот код не заработал. Если места достаточно, то он переносит по словам, но если места недостаточно, то шрифт не уменьшается а просто обрезается кусок