У меня есть текстовое представление и кнопки. По какой-то причине я получил неожиданный результат при попытке установить правильный зазор между этими двумя элементами. Я думаю, что может быть неправильное вычисление кадра text.view. Вот как мне удается установить рамку text.view:
//1 Setting properties for text, starting with dictionary containing font size and family
NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:[UIFont fontWithName:@"helvetica neue"
size:14]
forKey: NSFontAttributeName];
//Creating frame to hold textView
CGSize maximumLabelSize = CGSizeMake(self.myTextView.frame.size.width, FLT_MAX);
CGSize textViewSize = [self.descriptionStringShort boundingRectWithSize:maximumLabelSize
options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOrigin
attributes:stringAttributes context:nil].size;
//Setting frame
CGRect frame = self.myTextView.frame;
frame.size.height = textViewSize.height;
NSLog(@"%f height", frame.size.height);
self.myTextView.frame = frame;
После этого при попытке установить рамки кнопок он всегда показывает различный разрыв между этими элементами (мои «грубые» решения - проверить высоту text.view и установить «минимум» и «максимум» y зависит от него, но это не не работает в реальном приложении). Например, фрейм кнопки может быть отрисован на textView.frame или намного ниже него. Вот как я устанавливаю фрейм карты:
CGRect mapButtonFrame = self.mapButton.frame;
mapButtonFrame.origin.x = 30;
if (frame.size.height < 50){
mapButtonFrame.origin.y = (200+frame.size.height + 150);
} else if (frame.size.height >300){
mapButtonFrame.origin.y = (200+frame.size.height +50);
} else {
mapButtonFrame.origin.y = (200+frame.size.height +100);
}
self.mapButton.frame = mapButtonFrame;
Тем не менее, это плохой подход, пожалуйста, взгляните на прикрепленные скриншоты:
Здесь, как видите, всегда разный зазор между 2-мя элементами. Как я могу исправить это? Кстати, автоматическая раскладка отключена. Буду рад любым советам, спасибо1
HelveticaNeue
.helvetica neue
просто даст вам системный шрифт. - person streem   schedule 24.09.2014