uitableviewにttstyledtextlabelを表示します
-
29-09-2019 - |
質問
uitableviewの内側にttstyledtextlabelを設定するにはどうすればよいですか。各TTSTYLEDTEXTLABELには、いくつかの解析されたHTMLが含まれています。
ここに私が持っているものは、おそらく完全に間違っていることに気づきます。
TTStyledTextLabel* label = [[TTStyledTextLabel alloc] autorelease];
cell.textLabel.text = [TTStyledText textFromXHTML:tempString lineBreaks:YES URLs:YES];
起動時にアプリがクラッシュします。テキストではないもので.textプロパティを設定しているからだと思います。しかし、私は他に何を設定すべきかわかりません。
解決
次のコードはあなたが望むことを行います。しかし、残念ながら、自動的に高さを設定する方法を理解することはできません。メモリが問題でない場合は、ttStyledTextLabelの別の配列を保持し、高さを参照できます。
あなたのLoadViewで:
CGRect cgRct2 = CGRectMake(0, 35, 320, 375); //define size and position of view
tblView = [[UITableView alloc] initWithFrame:cgRct2 style:UITableViewStylePlain];
tblView.dataSource = [self constructDataSource];
tblView.delegate = self;
//[tblView reloadData];
[myView addSubview:tblView];
あなたのクラスで:
-(TTListDataSource *)constructDataSource {
NSLog(@"constructDataSource");
NSMutableArray * namesArray = [[NSMutableArray alloc] init];
//ADD ITEMS
[namesArray addObject:[TTStyledText textFromXHTML:[NSString stringWithString:@"some XHTML"]]];
TTListDataSource * dataSource = [[TTListDataSource alloc] init];
for (int i = 0; i < [namesArray count]; i++) {
TTStyledText * text = [namesArray objectAtIndex:i];
[dataSource.items addObject:[TTTableStyledTextItem itemWithText:text]];
}
[namesArray release];
return dataSource;
}
所属していません StackOverflow