1

快速提问,有什么方法可以对齐启用了 Sizetofit 的 UITextField ?向右说?

我有一个聊天对话窗口(UITableView),并使用 Sizetofit 帮助为我的实际消息创建那些“泡泡”类型的对话(图片=>我的对话聊天窗口的图片,其中 UITextField、MessageLabel 的大小适合当前登录的用户,但未对齐。

任何帮助将不胜感激,让这些气泡正确:-)

这是一个准系统片段....

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

 {
static NSString *cellIdentifier = @"HistoryCell";
MessageCustomCellCell *cell = (MessageCustomCellCell *)[self.tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
    cell.messageLabel.layer.cornerRadius = 9;
    cell.messageLabel.clipsToBounds = YES;
}

NSSortDescriptor *ratingsSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
NSArray *sortedRows = [_tableData sortedArrayUsingDescriptors:[NSArray arrayWithObject:ratingsSortDescriptor]];
_tableData = sortedRows;
NSDictionary *item = [_tableData objectAtIndex:[indexPath row]];


 // loggedInUser
 if ([[item objectForKey:@"fromuser"] isEqualToString:loggedInUser]) {

    cell.messageLabel.text = [item objectForKey:@"message"];
    cell.messageLabel.backgroundColor = [UIColor greenColor];
    cell.messageLabel.frame = CGRectMake(10, 25, 246, cell.messageLabel.contentSize.height);
    [cell.messageLabel sizeToFit];

 } else {
 // MESSAGE IS FRIEND OF THE PERSON SIGNED IN
     cell.messageLabel.text = [item objectForKey:@"message"];
     cell.messageLabel.backgroundColor = [UIColor redColor];
     cell.messageLabel.frame = CGRectMake(65, 25, 250, cell.messageLabel.contentSize.height);
     [cell.messageLabel sizeToFit];

 }

我想一种方法是找出文本的实际宽度,或者计算它,并相应地调整和定位,但不确定如何。

谢谢!

4

1 回答 1

0

这是我的例子。

(void)initWithMessage:(NSString*)message {
    [self.messageView setText:message];
    self.messageView.textColor = [UIColor whiteColor];

    [self.messageView sizeToFit];

    CGRect myFrame = self.messageView.frame;
    myFrame.origin.x = self.frame.size.width - myFrame.size.width;
    [self.messageView setFrame:myFrame];
}
于 2015-08-21T03:21:07.673 回答