私のアプリにはチャットシステムがあり、セル内のテキストの量に応じて動的なセルを動的な高さにしようとしています。
また、メッセージは右に配置され、送信者は左側に、受信者は右側にあるはずです...ストーリーボードで行ったことは次のとおりです。
でTableViewを作成し2 dynamic prototypes
、UIViewController
ここの中にそのためのviewControllerがあります...各セルにはラベルがあり、左右に1つずつ、左右全体が機能します...ここに私の問題があります。それはすべての人にとって右に引っ張るだけなので、基本的に私if
は起こっておらず、私else
は却下されています。こちらSSです。
だから私には2つの問題があります...テキストに複数の行がありません...動的な高さもありません...誰かが私に送信者と受信者を異なる側に表示させるための正しい方向を教えてくれれば。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSArray *myWords = [[getMessage objectAtIndex:indexPath.row] componentsSeparatedByString:@":oyr4:"];
if (myWords[1] == [MyClass str]){
static NSString *sender = @"sender";
UITableViewCell* cellSender = [_tableView dequeueReusableCellWithIdentifier:sender];
messageContentTo = (UILabel *)[cellSender viewWithTag:83];
self->messageContentTo.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.8];
self->messageContentTo.lineBreakMode = NSLineBreakByWordWrapping;
[self->messageContentTo sizeToFit];
messageContentTo.text = myWords[4];
return cellSender;
} else {
static NSString *reciever = @"reciever";
UITableViewCell* cellReciever = [_tableView dequeueReusableCellWithIdentifier:reciever];
messageContentFrom = (UILabel *)[cellReciever viewWithTag:84];
messageContentFrom.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.8];
messageContentFrom.lineBreakMode = NSLineBreakByWordWrapping;
messageContentFrom.font = [UIFont systemFontOfSize:22];
messageContentFrom.numberOfLines = 0;
messageContentFrom.text = myWords[4];
return cellReciever;
}
}
#pragma mark - UITableViewDelegate methods
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGSize size = [[getMessage objectAtIndex:indexPath.row]
sizeWithFont:[UIFont systemFontOfSize:22]
constrainedToSize:CGSizeMake(1000, CGFLOAT_MAX)];
return size.height + 15;
}