我想添加一个自定义表格到我的iPhone应用程序中,它的外观和工作方式应该与在显示通知的facebook应用程序中使用的一样。它应该包含带有链接的行。文本应为黑色,而可点击的部分应显示为蓝色。
正如已经指出的,标签只有一种字体,颜色等等,你不能在其中混合样式,我将不得不使用不同的组件。可制表符的文本部分可能是带有自定义样式的UIButtons,没有任何边框。
我尝试了不同的方法来构建自定义单元。我使用Interface Builder来布局组件,但是由于不同的部分有不同的长度,所以它们彼此重叠。我还尝试将UIButton和UILabel的实例作为子视图添加到单元的contentView中,作为Apple's tutorial中的descibed。这样做的问题是:组件的位置和大小在使用"initWithFrame:...“创建时是固定和设置的。
简而言之,我想添加标签和按钮,没有固定的位置或大小,按钮可单击,单元格高度应根据内容自动设置。
这是Facebook的应用通知视图的屏幕截图:faceboo app notifications http://img84.imageshack.us/img84/4662/photodn.jpg
发布于 2010-06-07 23:57:51
选项1:使用UIWebview显示文本并将其格式化为超文本标记语言。对于链接,使用自定义URL发送回您的应用程序,该应用程序通过显示适当的视图进行响应。
选项2:使用NSString UIKit Additions直接管理标签的大小或将文本绘制到可用作按钮的图像中。在这两种情况下,您都将使用加法的方法来计算字符串的显示大小(以像素为单位),然后根据需要调整单个显示视图(标签、按钮、图像等)的大小,然后在表视图的代理将单元格返回到表视图之前进行调整。
这两个选项都需要仔细编写代码。如果iPhoneOS支持属性字符串,那就更好了。
编辑:
它看起来像Three20 has a styled text view.,它看起来也可以放入表格中,而且它支持链接。我还没有用过它,但它可能会做你想要的。
发布于 2010-06-14 11:17:10
你可能认为这很容易,但实际上它真的很难。UIKit不是为此设置的。最简单的方法是使用Three20库--至少阅读代码,这样您就能理解它需要做什么。
在OS4中可能有一些东西让它变得更容易。如果你发现了,请把它贴出来!
发布于 2010-06-03 17:43:20
在您的facebook示例中,似乎只有一行带换行符。
要允许换行符,只需将以下代码添加到您的cellForRowAtIndexPath
// load cell description; set nrOfLines to 0 to allow linebreaks
cell.detailTextLabel.numberOfLines = 0;有了它,你应该能够处理固定位置和动态内容。
https://stackoverflow.com/questions/2943613
复制相似问题