2014-03-24 7 views
0

연습을위한 간단한 채팅 앱을 만들려고합니다. 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; 
} 

이 결과는 내가 얻을 수있다 : enter image description here 이 문제에 대해 잘 알고 누구인가? 그 이유를 아는 사람이 있습니까?

EDIT : UILabel을 사용해 보았지만 모든 기능이 제대로 작동했지만 UILabel에 필요한 기능이 없습니다.

답변

0

sizeToFit은 UITextView의 경우 수행하려는 작업을 수행하지 않습니다. 내용에 맞게 크기가 조정 된 UITextView를 만들 수 있지만 그 방법은 아닙니다.

스택 오버플로 검색을 수행하면 많은 정보를 얻을 수 있습니다. 예 : How do I size a UITextView to its content?

+0

답장을 보내 주셔서 감사합니다. 그냥 호기심에서 왜 그림과 같은 모양인지 알 수 있습니까? – user1563544

+0

@ [user1563544] (http://stackoverflow.com/users/1563544/user1563544) 답변이 도움이된다면 투표를하고 습득하십시오. 이것은 다른 사람들이 당신의 질문에 대답하도록 격려 할 것입니다. –