IOS Swift如何隐藏字符通过一定的限制

时间:2016-11-22 04:11:54

标签: ios swift uitableview uibutton swift3

我有一个UIButton被用作label,该按钮位于TableView内,并且由我从Json获取的数据填充。我设置它的方式是,如果一个特定的行有超过100个字符,那么只显示前100个字符,如果用户点击按钮,那么我想显示其余的数据。我的问题是,当我显示前100个字符时,我覆盖了Post-Message的其余部分,这样当用户点击Button-Post时,它仍会显示前100个字符而不是完整的消息。我的代码将清理

var Posts = [String]()

 override func viewDidLoad() {
     if let post = Stream["post"] as? String {
              // if contains more than 100 show only 100
                                if post.characters.count > 100 {
                                   let startIndex = post.index(post.startIndex, offsetBy: 100)

                                    self.Posts.append(post.substring(to: startIndex).appending("... Read More"))
                                } else {
                 // contains less than 100 characters
                                    print(post.characters.count)
                                    self.Posts.append(post) }
                            }

                      }


  func Post_ShowAll(sender: UIButton) {
        // This is supposed to show the full message
        var post_limit: String = Posts[sender.tag]
         print(post_limit)
        if post_limit.characters.count > 100 {

        let startIndex = post_limit.index(post_limit.startIndex, offsetBy: post_limit.endIndex)

             post_limit.append(post_limit.substring(to: startIndex))
        }

    }


  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "HomePageTVC", for: indexPath)

         cell.post.setTitle(Posts[indexPath.row],for: UIControlState.normal)
        cell.post.addTarget(self, action: #selector(HomePageC.Post_ShowAll(sender:)), for: .touchUpInside)
        cell.post.tag = indexPath.row

        return cell
    }

我认为我的问题出在viewDidLoad,如果帖子有150个字符,那么它将落在IF语句中并将其缩减为100个字符。一旦用户单击Post按钮到ShowAll方法,它仍然显示相同的100个字符,因为原始的完整数据已被覆盖。有什么方法我只能显示前100个字符并隐藏其余字符吗?

0 个答案:

没有答案