Эта проблема должна быть решена миллион раз, но Google не был моим другом.
Мне нужно программно разделить набор полей, чтобы заполнить определенную длину и быть разделенными определенным расстоянием.
Вот что я хочу:
альтернативный текст http://img257.imageshack.us/img257/3362/spacingiwant.png
Вот что я получаю:
альтернативный текст http://img194.imageshack.us/img194/3506/spacingiget.png
Поскольку я работаю в Objective-C с использованием Core Graphics, мне нужна серия Rects, в которые я могу нарисовать или перетащить изображение. Моя наивная попытка нарисовать набор ящиков с определенным интервалом, но в конце оставить пробел.
Вот мой код, который находится в drawRect: метод
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat barStartX = 96;
CGFloat barStartY = 64.0;
CGFloat barWidth = 16;
CGFloat barHeight = 64;
CGFloat barGutter = 8;
int barSegments = 8;
for (int segmentNumber = 0; segmentNumber <= (barSegments - 1); ++segmentNumber) {
// get the box rect
CGRect segment = CGRectMake(barStartX + (barWidth * segmentNumber), barStartY , barWidth - barGutter, barHeight);
// plot box
CGContextFillRect(context, segment);
}
Прежде чем я создам непроницаемую монструозность одноразового кода, которую даже через 6 месяцев я не пойму, мне интересно, есть ли общее решение этой проблемы пробелов.
Ответ не обязательно должен быть в Objective-C, если он в некоторой степени похож на C. Читабельность имеет приоритет перед соображениями производительности.