연습을위한 간단한 채팅 앱을 만들려고합니다. UITableView를 사용하여 chatroom을 설정하고 스토리 보드에서 셀을 구성했습니다. 내 메시지 컨테이너로 간단한 UITextView 넣어, 그러나 이상한 몇 가지 이유는 내가 얻은 크기 이상한이며 의미가 없습니다. 여기에 셀에 대한 코드는 다음과 같습니다UITextView, sizeToFit이 이상하게 작동합니다.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
ChatroomTableViewCell *cell = (ChatroomTableViewCell *)[self.tableView dequeueReusableCellWithIdentifier:@"MessageCell" forIndexPath:indexPath];
Message *cellMessage = [self.messages objectAtIndex:indexPath.row];
cell.userNameLabel.text = cellMessage.userName;
cell.messageLabel.text = cellMessage.messageText;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm a"];
[cell.messageLabel.layer setCornerRadius:2.0f];
if (cellMessage.messageType == SENT_MESSAGE) {
NSString *dateLabelString = [NSString stringWithFormat:@"Sent: %@", [formatter stringFromDate:cellMessage.relevantDate]];
cell.relevantDateLabel.text = dateLabelString;
cell.userNameLabel.textAlignment = NSTextAlignmentRight;
cell.relevantDateLabel.textAlignment = NSTextAlignmentRight;
[cell.messageLabel setBackgroundColor:self.currentTheme.sentMessageColor];
[cell.messageLabel.layer setBorderColor:self.currentTheme.sentMessageColor.CGColor];
[cell.messageLabel setTextAlignment:NSTextAlignmentRight];
[cell.messageLabel sizeToFit];
[cell.messageLabel setFrame:CGRectMake(self.view.frame.size.width - 20 - cell.messageLabel.frame.size.width - 10, cell.messageLabel.frame.origin.y, cell.messageLabel.frame.size.width + 10, cell.messageLabel.frame.size.height + 5)];
} else {
NSString *dateLabelString = [NSString stringWithFormat:@"Received: %@", [formatter stringFromDate:cellMessage.relevantDate]];
cell.relevantDateLabel.text = dateLabelString;
cell.userNameLabel.textAlignment = NSTextAlignmentLeft;
cell.relevantDateLabel.textAlignment = NSTextAlignmentLeft;
if (cellMessage.messageType == EVENT_MESSAGE) {
[cell.messageLabel setBackgroundColor:self.currentTheme.eventMessageColor];
} else {
[cell.messageLabel setBackgroundColor:self.currentTheme.receivedMessageColor];
}
[cell.messageLabel sizeToFit];
}
return cell;
}
이 결과는 내가 얻을 수있다 : 이 문제에 대해 잘 알고 누구인가? 그 이유를 아는 사람이 있습니까?
EDIT : UILabel을 사용해 보았지만 모든 기능이 제대로 작동했지만 UILabel에 필요한 기능이 없습니다.
답장을 보내 주셔서 감사합니다. 그냥 호기심에서 왜 그림과 같은 모양인지 알 수 있습니까? – user1563544
@ [user1563544] (http://stackoverflow.com/users/1563544/user1563544) 답변이 도움이된다면 투표를하고 습득하십시오. 이것은 다른 사람들이 당신의 질문에 대답하도록 격려 할 것입니다. –