ios - UITextView, sizeToFit is acting weirdly -
i'm trying create simple chat app practice. use uitableview setup chatroom , configured cell storyboard. put simple uitextview message container, odd reason sizes weird , make no sense. here's code cell:
- (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; }
this result get: familiar problem? know reason?
edit: tried using uilabel , worked fine, uilabel doesn't have functionality need.
the problem sizetofit
doesn't do, uitextview, want done. can make uitextview sized contents, that's not how it.
do search on stack overflow, you'll find lots of info. example: how size uitextview content?
Comments
Post a Comment