Я отображая эту строку (обратите внимание на разрывы):CoreText добавляет дополнительное пространство к линии лас каждого пункта
CONSEJO
NACIONAL
PARA LA
CULTURA
Y LAS ARTES
Я настроенная NSAttributedString иметь высоту строки постоянная до 26 точек с использованием код предложил яблоком here:
CGFloat lineSpacing = 26;
CTTextAlignment theAlignment = kCTLeftTextAlignment;
CTParagraphStyleSetting theSettings[3] =
{
{kCTParagraphStyleSpecifierMaximumLineHeight, sizeof(CGFloat), &lineSpacing},
{kCTParagraphStyleSpecifierMinimumLineHeight, sizeof(CGFloat), &lineSpacing},
{kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), &theAlignment },
};
Но есть дополнительное место на последней строке:
Если я вручную добавить пробелов между словами, которые я получаю ожидаемый результат, поэтому при печати:
CONSEJO NACIONAL PARA LA CULTURA Y LAS ARTES
Это показывает, что это (Обратите внимание, что нет никакого дополнительного разноса на последнюю строке):
Это не устойчивое решение, так как я не хочу вручную менять все строки, чтобы добавить пробелы на основе размера фрейма.
Я тестировал в течение нескольких месяцев, и я не смог это решить, последняя строка всегда получает больше места.
Я также экспериментировал с «\ г», чтобы увидеть, если это имеет разные результаты, но он все еще добавляет дополнительное пространство, отображая:
Consejo\rNacional\rpara la\rCultura\ry las Artes
Произведено:
[Влево, используя \ г] [ Право, используя Пробелы]
http://dl.dropbox.com/u/11470523/Test.png
[Здесь все синие блоки имеют одинаковый размер]
http://dl.dropbox.com/u/11470523/TEsst1%20copy.png
Таким образом, есть меньше места, но есть еще больше, чем должно быть.
CoreText должен иметь возможность обрабатывать простую строку, подобную этой.
Добавление пробелов - это не достаточно хорошо (по нескольким причинам), должен быть способ получить это под контролем.
Как вы думаете, в чем проблема?