我有一个带有两个 UILabel 的 UITableViewCell,使用 Storyboard 和 Autolayout。 问题是第二个标签只显示两行文本,即使要显示更多行也是如此。
编辑:当 Controller 是 UIViewController 而不是 TableViewController 时会出现问题,它在 TableViewController 中按预期工作
我已将 numberoflines 属性设置为 0 在自动布局中,我从所有四个侧面固定了两个标签。
但这并没有帮助,只显示了一行。
当我将 heightForRowAtIndexPath 与 systemLayoutSizeFittingSize 一起使用时 为了获得行的高度,事情略有改善并显示了两行。
我在 8.2 和 8.4 上都测试过
我已经尝试过堆栈溢出 Multiple UILabels inside a self sizing UITableViewCell 中概述的解决方案
我已经尝试了本教程中概述的步骤:http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layout
代码在这里:https://www.dropbox.com/sh/jp8ki0uxvfuf6ng/AABZlzzLnw9dMoamNbNkI_6Ba?dl=0
最佳答案
我是这样完成的:
为顶部标签创建前导、顶部和尾部约束 为底部标签创建前导、底部和尾随约束
在两个标签之间创建一个垂直约束
确保您的尾随约束设置为使用单元格的大部分宽度
将 UILabel 的行数设置为 0
在您的代码中:
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var textData = ["Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum euismod nisl neque, et eleifend felis dictum in. Nullam semper diam nec leo malesuada, non ultrices eros bibendum. Phasellus laoreet eros quis enim condimentum, nec pharetra augue ultrices. Nunc quis convallis magna. Fusce fringilla diam nunc, in consequat urna accumsan nec. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras in diam nec dolor tristique efficitur sed eu est.", "Maecenas ipsum nunc, ultricies non faucibus vitae, eleifend sit amet felis. Donec non dignissim sapien. Etiam vitae dapibus dolor. Duis nec diam sed augue aliquam vehicula. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed vulputate gravida tellus. Sed porttitor lacus ac venenatis fringilla. Pellentesque in sapien felis. Vestibulum pharetra fermentum arcu in sollicitudin. Phasellus convallis sit amet felis in rhoncus. Fusce consectetur tempus varius. Aliquam a fermentum dui. Curabitur vestibulum varius purus. Duis feugiat ligula a ligula imperdiet porta.","Quisque sagittis elementum odio vitae convallis. Nam dignissim pellentesque leo quis feugiat. Suspendisse a nisi et metus posuere dignissim sollicitudin nec lorem. Cras nec porta urna, sit amet bibendum dolor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas enim dui, pellentesque in pulvinar non, faucibus sodales nibh. Mauris non condimentum ipsum.","Sed volutpat lectus id nibh scelerisque, ac mollis lectus cursus. Integer orci neque, euismod et dolor quis, condimentum pulvinar arcu. Etiam finibus nibh at dapibus fringilla. Proin viverra lobortis tempor. Vivamus luctus sem sed purus elementum, et tempor erat mollis. Duis cursus massa in mi imperdiet, condimentum semper est fringilla. Mauris a elit hendrerit, finibus felis sit amet, placerat nulla. Integer convallis massa vitae magna fermentum, id auctor neque varius. Aliquam vestibulum a lacus eu efficitur. Donec condimentum nunc eu ante vehicula aliquet. Vestibulum congue magna ut ultricies tempus. Phasellus porttitor at nisi sed tincidunt.","Curabitur lobortis non augue quis lacinia. In fermentum porta eleifend. Pellentesque eu ligula sit amet neque mollis varius vitae lacinia purus. Phasellus ut gravida elit. Maecenas id sem luctus, iaculis massa eget, condimentum mi. Vestibulum venenatis iaculis dignissim. Curabitur erat dui, eleifend ac turpis sit amet, viverra imperdiet metus. Integer eleifend a velit id bibendum."]
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tableView.estimatedRowHeight = 60 // The # from storyboard in the size inspector
tableView.rowHeight = UITableViewAutomaticDimension
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return textData.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CTableViewCell
cell.topLabel.text = ""
cell.bottomLabel.text = ""
cell.topLabel.text = "Cell Title"
cell.bottomLabel.text = textData[indexPath.row]
cell.bottomLabel.sizeToFit()
return cell
}
}
你会得到这个:
关于ios - 具有两个自动布局标签的 TableView 单元格,在 UIViewController 中不显示所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32357538/
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby中使用两个参数异步运行exe吗?我已经尝试过ruby命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何rubygems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除
当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested
我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article
我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c
我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的