Прозрачный фон и автоматическое изменение размера DTAttributedTextView

#ios #objective-c #dtcoretext

#iOS #objective-c #dtcoretext

Вопрос:

Я использовал следующие коды для применения содержимого DTAttributedTextView :

 NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *builderOptions = @{DTDefaultFontFamily: @"Helvetica", DTUseiOS6Attributes: [NSNumber numberWithBool:YES]};
NSAttributedString *attrString = [[NSAttributedString alloc] initWithHTMLData:data options:builderOptions  documentAttributes:nil];
DTCoreTextLayouter *layouter = [[DTCoreTextLayouter alloc] initWithAttributedString:attrString];
CGRect maxRect = CGRectMake(10, 20, CGFLOAT_WIDTH_UNKNOWN, CGFLOAT_HEIGHT_UNKNOWN);
NSRange entireString = NSMakeRange(0, [attrString length]);
DTCoreTextLayoutFrame *layoutFrame = [layouter layoutFrameWithRect:maxRect range:entireString];
CGSize sizeNeeded = [layoutFrame frame].size;
[cell.lbl setContentSize:sizeNeeded];
[cell.lbl setAttributedString:attrString];
  

где указанные выше коды находятся в - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath и cell.lbl является UIScrollView пользовательским классом DTAttributedTextView .

Однако результатом вывода является то, что объект DTAttributedTextView находится на белом фоне и не изменяется в соответствии с setContentSize .

Что я пропустил?

Примечание: использование iOS 7 SDK, DTCoreText 1.6.12 (через Cocoapods)

Ответ №1:

Я наконец-то нашел простой способ сделать фон прозрачным.

Добавьте эту строку в конец кода:

 [cell.lbl setBackgroundColor:[UIColor clearColor]];