如何在UITableViewCell中左右对齐UILabel

时间:2016-01-10 03:34:56

标签: ios swift uitableview uilabel

我正在构建一个聊天应用程序并遇到了问题。当我尝试向左或向右对齐UILabel时,取决于发送消息的人不起作用。每次收到消息时我都会重新加载TableView,但标签没有更新。我正在使用swift 2.0。我还能尝试什么?或者还有另一种方法可以做得更好吗?

//in cellForRowAtIndexPath
   if message == my own {
      //tried this
      cell.nameOfSender.frame.origin.y = 0
      cell.nameOfSender.frame.origin.x = widthOfScreen
      //And this          
      cell.nameOfSender.center = CGPointMake(95,15)
} else{
      cell.nameOfSender.frame.origin.y = 0
      cell.nameOfSender.frame.origin.x = 0
      //And this          
      cell.nameOfSender.center = CGPointMake(95,15)
}

1 个答案:

答案 0 :(得分:0)

你有两种方式,

首先使用NSTextAlignment,因此您可以执行以下操作:

cell.lblTitle.textAlignment = .Left

第二个一个是为每个样式(左和右)创建不同的UITableViewCell子类

例如:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let row = indexPath.row
    //ChatCell is a Subclass of UITableViewCell
    var cell:ChatCell
    // Just Random presenter getting the chat for the row
    let chat = presenter?.getChat(row) 

    //Getting info whether the chat sender is me or not and the instances of each custom cells.
    if chat.sender == ChatSender.Me {
       cell = ChatCellSender(title: "Example")
    }else{
       cell = ChatCellReceiver(title: "Example")
    }
    return cell
}