У меня есть представление, в котором много ярлыков заполняется анализируемым XML. Это представление находится в UIScrollView. Некоторые из XML слишком длинны для ярлыков. Я изменяю размеры меток на основе содержимого XML. Когда метки имеют размерность, они перекрывают последующие метки, потому что мой UIView (то есть внутри UIScrollView) не изменяется. Я часами пробираю интернет, пытаясь найти ответ на этот вопрос, но все, что я пробовал, не достигло того, что я ищу. Любая помощь будет принята с благодарностью.Изменение размера UIView на основе содержимого
Это мой метод populateLabels.
-(void) populateLabels {
NSString *noInfo = (@"No Information Available");
lblCgName.text = _Campground.campground;
NSString *cgLoc = _Campground.street1;
NSString *cgCity = _Campground.city;
NSString *cgState = _Campground.state1;
NSString *cgCountry = _Campground.country;
NSString *cgZipPostal = _Campground.zipPostal;
cgLoc = [[cgLoc stringByAppendingString:@", "] stringByAppendingString:cgCity];
cgLoc = [[cgLoc stringByAppendingString:@", "] stringByAppendingString:cgState];
cgLoc = [[cgLoc stringByAppendingString:@", "] stringByAppendingString:cgCountry];
cgLoc = [[cgLoc stringByAppendingString:@" "] stringByAppendingString:cgZipPostal];
lblCgLoc.text = cgLoc;
double dRate = [_Campground.regRate1 doubleValue];
double dRate2 = [_Campground.regRate2 doubleValue];
NSString *rate = [[NSString alloc] initWithFormat:@"$%0.2f",dRate];
NSString *rate2 = [[NSString alloc] initWithFormat:@"$%0.2f",dRate2];
if ([rate2 isEqualToString:@"$0.00"]) {
lblRate.text = rate;
} else {
rate = [[rate stringByAppendingString:@" - "] stringByAppendingString:rate2];
lblRate.text = rate;
}
double dPaRate = [_Campground.paRate1 doubleValue];
double dPaRate2 = [_Campground.paRate2 doubleValue];
NSString *paRate = [[NSString alloc] initWithFormat:@"$%0.2f",dPaRate];
NSString *paRate2 = [[NSString alloc] initWithFormat:@"$%0.2f",dPaRate2];
if ([paRate2 isEqualToString:@"$0.00"]) {
lblPaRate.text = paRate;
} else {
paRate = [[paRate stringByAppendingString:@" - "] stringByAppendingString:paRate2];
lblPaRate.text = paRate;
}
lblLocal1.text = _Campground.localPhone1;
lblLocal2.text = _Campground.localPhone2;
lblTollFree.text = _Campground.tollFree;
lblFax.text = _Campground.fax;
lblEmail.text = _Campground.email;
lblWebsite.text = _Campground.website;
NSString *gps = _Campground.latitude;
NSString *longitude = _Campground.longitude;
gps = [[gps stringByAppendingString:@", "] stringByAppendingString:longitude];
lblGps.text = gps;
lblHighlights.text = _Campground.highlights;
lblHighlights.lineBreakMode = UILineBreakModeWordWrap;
lblHighlights.numberOfLines = 0;
//label resizing
CGSize maximumLabelSize = CGSizeMake(296,9999);
CGSize expectedLabelSize = [_Campground.highlights sizeWithFont:lblHighlights.font
constrainedToSize:maximumLabelSize
lineBreakMode:lblHighlights.lineBreakMode];
//adjust the label the the new height.
CGRect newFrame = lblHighlights.frame;
newFrame.size.height = expectedLabelSize.height;
lblHighlights.frame = newFrame;
lblTents.text = _Campground.tents;
lblNotes.text = _Campground.notes;
lblDirections.text = _Campground.directions;
lblRentals.text = _Campground.rentals;
}
Вы можете обратиться к http://stackoverflow.com/questions/2998336/how-to-create-a-uiscrollview-programmatically, это поможет вам в создании вида просмотра, которое вы хотите ... – rishi
Я ценю вход, но это не совсем то, что я ищу. Они создают представление прокрутки с кодом и изменяют его размер.Я ищу, чтобы изменить размер представления, которое у меня уже есть в представлении прокрутки, которое у меня уже есть. Все работает, и он прокручивает весь путь вниз. Мне просто нужно расширить представление о том, что метки включены. – tallybear
Я могу предложить вам сначала создать все ярлыки, теперь после этого вы можете вычислить высоту представления dyanamically - label_height + offset_height_between_label + header_footer_offset. Теперь с этой высотой mch вы можете создать свой вид, а затем вы можете добавить там ярлык. – rishi