我有包含 HTML 格式的文本,我正试图在 View 上呈现这些文本。目前我正在使用 NSAtributedString 来显示 UILabel 中的文本。
我获取属性字符串如下:
NSString *htmlString = @"<html>"
" <head>"
" <style type='text/css'>"
" body { font: 12pt 'Helvetica'; color: #111111; }"
" </style>"
" </head>"
" <body>";
htmlString = [htmlString stringByAppendingString:self.descriptionText];
htmlString = [htmlString stringByAppendingString:@"</body></html>"];
NSError *err = nil;
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithData: [htmlString dataUsingEncoding:NSUTF8StringEncoding]
options: @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType}
documentAttributes: nil
error: &err];
然后将其分配给我的标签的 attributedText 属性。属性 self.descriptionText 是一个 NSString,它可以包含简单的 HTML 标记,例如 p 标签或带有内联样式的 span 标签。在另一篇 StackOverflow 帖子中发现了将字符串包装在 HTML 文档中的技术。
UILabel 设置为 Lines = 0 和 Line Breaks = Word Wrap。我看到的行为是标签适当增长以容纳整个字符串,但字符串的最后一行永远不会呈现,无论字符串有多长。
这是一个带有两个标签的屏幕截图。顶部标签(黄色背景)中有我的 HTML 属性字符串。您可以看到标签已调整自身大小以允许 3 行文本,但只呈现了两行,其余的被截断了。第二个标签(带有红色背景)已将纯字符串分配给其 Text 属性,并且绘制得很好。
示例图像中使用的 HTML 字符串包含以下文本:
<p>With the world's longest fan-vaulted ceiling, an original Reubens painting, and an excellent collection of medieval stained glass, this chapel has intrigue from multiple angles</p>
一个可接受的答案将解释我如何防止最后一行被截断或提供一种简单的替代方法来将 HTML 文本呈现到 View 。谢谢。
最佳答案
好的,我想通了。这不是一个明显的解决方案,但我在发现它之后确实做了一个面部手掌。
问题是 p 标签被赋予了边距和/或填充,这将文本推到 UILabel 的边界之外。我不知道为什么在计算字符串大小时不考虑它,但我不在乎了。
我的解决方案是添加 p {margin:0; padding:0;} 添加到我在 HTML 字符串前添加的样式标签。现在,所有字符串都已在 UILabel 中正确绘制。
关于html - NSAttributedString 的最后一行未在 UILabel 中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22654688/
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我在Rails工作并有以下类(class):classPlayer当我运行时bundleexecrailsconsole然后尝试:a=Player.new("me",5.0,"UCLA")我回来了:=>#我不知道为什么Player对象不会在这里初始化。关于可能导致此问题的操作/解释的任何建议?谢谢,马里奥格 最佳答案 havenoideawhythePlayerobjectwouldn'tbeinitializedhere它没有初始化很简单,因为你还没有初始化它!您已经覆盖了ActiveRecord::Base初始化方法,但您没有调
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.
我正在学习http://ruby.railstutorial.org/chapters/static-pages上的RubyonRails教程并遇到以下错误StaticPagesHomepageshouldhavethecontent'SampleApp'Failure/Error:page.shouldhave_content('SampleApp')Capybara::ElementNotFound:Unabletofindxpath"/html"#(eval):2:in`text'#./spec/requests/static_pages_spec.rb:7:in`(root)'
我正在尝试将一个简单的CSV文件读入HTML表格以在浏览器中显示,但我遇到了麻烦。这就是我正在尝试的:Controller:defshow@csv=CSV.open("file.csv",:headers=>true)end查看:输出:NameStartDateEndDateQuantityPostalCode基本上我只获取标题,而不会读取和呈现CSV正文。 最佳答案 这最终成为最终解决方案:Controller:defshow#OpenaCSVfile,andthenreaditintoaCSV::Tableobjectforda
我是HanamiWorld的新人。我已经写了这段代码:moduleWeb::Views::HomeclassIndexincludeWeb::ViewincludeHanami::Helpers::HtmlHelperdeftitlehtml.headerdoh1'Testsearchengine',id:'title'hrdiv(id:'test')dolink_to('Home',"/",class:'mnu_orizontal')link_to('About',"/",class:'mnu_orizontal')endendendendend我在模板上调用了title方法。htm
啊,正则表达式有点困惑。我正在尝试删除字符串末尾所有可能的标点符号:ifstr[str.length-1]=='?'||str[str.length-1]=='.'||str[str.length-1]=='!'orstr[str.length-1]==','||str[str.length-1]==';'str.chomp!end我相信有更好的方法来做到这一点。有什么指点吗? 最佳答案 str.sub!(/[?.!,;]?$/,'')[?.!,;]-字符类。匹配这5个字符中的任何一个(注意,。在字符类中并不特殊)?-前一个字符或组
我想用Nokogiri解析HTML页面。页面的一部分有一个表,它没有使用任何特定的ID。是否可以提取如下内容:Today,3,455,34Today,1,1300,3664Today,10,100000,3444,Yesterday,3454,5656,3Yesterday,3545,1000,10Yesterday,3411,36223,15来自这个HTML:TodayYesterdayQntySizeLengthLengthSizeQnty345534345456563113003664354510001010100000344434113622315