我是iOS开发的新手,思考如何最好地解决一个相当简单的设计问题.我想显示一组项目,每个项目都具有草图结构.在给定的集合中,不超过10个项目.

每个项目包括缩略图图像,标题,模糊和一组按钮.有两个并发症:
我考虑过这些方法:
使用具有自定义,可调整大小的UITableViewCell的表视图,可能使用类似OHAttributedLabel的文本.对于可变数量的按钮,要么以编程方式布局,要么可能使用新的集合视图(对于较旧的iOS,必须使用第三方网格视图).
使用基于UIWebView的自定义单元格的表格视图.
将整个集合作为一个UIWebView.
使用带有部分的表格视图; 每个项目都有自己的部分,并将按钮和文本解析为行.
很想获得有关更有经验的iOS开发者如何处理此问题的建议.
编辑:我现在正在考虑最好的方法可能是:
5)使用UICollectionView来完成整个事情.
更新:最后,我把整个事情放在代码中作为自定义表格单元格(即#1).这是一个很好的选择,不仅仅是因为答案中给出的原因,而是因为作为iOS开发的新手,我需要掌握一些东西.甚至没有使用按钮的集合视图,因为我担心性能以及支持iOS5的麻烦.
我确实认为使用整个设计的集合视图(#5)将是一个优雅的解决方案,我实际上开始沿着这条路走下去.然而,上面简化图中未显示的一些复杂情况使得这些并发症变得笨拙.
第二次更新:#1结果是死路一条.我的最终解决方案使用了UIWebView(#3) - 请参阅答案.
我需要显示一个UILabel文本,它有两种不同的样式(不同的颜色,文本的部分粗体).使用attributedText属性可以很容易地解决这个问题.
我的问题是文本可能会或可能不会长于我可以放在标签中的内容.使用纯文本时,一切都按我想要的方式工作.文本是自动换行以适合标签中的行数,如果/当文本比标签中显示的长时,则尾部被截断.
当我切换到使用attributedText时,我只能在尾部截断和自动换行之间进行选择.如果我希望尾部被截断,那么标签只会呈现带有截尾的单行(即使它可以适合10行).如果我选择自动换行,那么尾部不会被截断,但是不能显示标签中不适合的行.
我的内容字符串不包含任何换行符,它只是一个长字符串.
我们如何在NSMutableAttributedString上设置行间距或行高.我试过了
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
[paragraphStyle setLineSpacing:150] ;
paragraphStyle.minimumLineHeight = 150;
[self addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, self.length)];
Run Code Online (Sandbox Code Playgroud)
没有运气.
任何建议将不胜感激.
谢谢
随着iOS 7的到来NSHTMLTextDocumentType,我使用下面的代码来解析HTML并将其显示在一个UITextView.除了带有子弹点外,它完美无缺.
如何更改项目符号每一侧的间距(项目符号和UItextView左边框之间的空格以及项目符号右侧文本之间的空格)?
而且,更重要的是.如果文本在下一行继续,我还需要它继续在相同的x位置,如子弹点文本开始的上面的行.我怎样才能做到这一点?(二线压痕)
我尝试过使用各种各样的CSS,但似乎NSHTMLTextDocumentType仍然相当有限.我设法做的只是改变列表的颜色.
所有帮助表示赞赏.
先感谢您!
码:
_textView.textContainer.lineBreakMode = NSLineBreakByCharWrapping;
NSString *testText = @"<p><b>This is a test with:</b></p><ul><li>test test test
test test test test test test test test test test <li>test test test test test
test <li>test test test test test <li>test test test test test test test test
test test test test <li>test test test test test test test test <li>test test
test test test test <li>test test test test …Run Code Online (Sandbox Code Playgroud) 我需要a的文本UILabel是黑色的,但在文本下面有一个浅灰色的下划线.是否可以使用NSAttributedString或TTTAttributedLabel?或者是否需要使用Core Graphics的自定义绘图?
澄清:我需要一个不同颜色下划线的特定颜色文本.示例:红色下划线上的蓝色文本.
我想用键盘扩展,因为这些应用程序编写一些自定义的字体的文本(1,2,3,4)在做什么.我知道如何在文档代理中插入普通字符串.
[self.textDocumentProxy insertText:mystring];
Run Code Online (Sandbox Code Playgroud)
我试图NSAttributedString使用上述方法插入,但我看不到任何方式插入NSAttributedString文档代理.
有人可以指导什么是解决这个问题的最佳方法?任何建议将不胜感激.
我有一个UIButton,我在Interface Builder中给出了一个属性标题:它有一个特定的字体,字符串的一部分是不同的颜色.
当我加载我的应用程序时,颜色会保留,但应用程序会将字体恢复为系统默认值...
有人经历过这个或知道修复的方法吗?试图避免在代码中设置属性标题.
如果重要,我使用的字体是Open Sans,它在我在代码中指定字体的其他标签上正确显示.
所以,我在一个项目中遇到问题,某些旧版iPhone在某些iOS版本中没有正确呈现某些字符串(特别是它不适用于带有iOS10的iPhone 5,而它适用于iOS9.3,奇怪的是).为了减少这个问题,我写了这段代码:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Long HTML, although we'll make it even larger to prove a point
let string = "<h1>Thing 1</h1><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget …Run Code Online (Sandbox Code Playgroud) 我检查了文档,方法在那里。
当我查看 .h 文件时,我确实看到了该功能。我尝试清理和重建,但在迁移到 Swift 4 后仍然出现此错误。
“NSAttributedString”类型的值没有成员“addAttributes”
在以下方面:
var options:[NSAttributedString.DocumentReadingOptionKey : Any] = [NSAttributedString.DocumentReadingOptionKey.documentType : NSAttributedString.DocumentType.html]
var attributedString = try NSAttributedString(data: data, options: options, documentAttributes: nil)
let range = (attributedString.string as NSString).range(of: attributedString.string)
attributedString.addAttributes(baseAttributes, range: range) // ERROR!
Run Code Online (Sandbox Code Playgroud) 我添加一个图标到UILabel使用NSTextAttachment中的NSMutableAttributedString是这样的:
//Setting up icon
let moneyIcon = NSTextAttachment()
moneyIcon.image = UIImage(named: "MoneyIcon")
let moneyIconString = NSAttributedString(attachment: moneyIcon)
//Setting up text
let balanceString = NSMutableAttributedString(string: " 1,702,200")
balanceString.insert(moneyIconString, at: 0)
//Adding string to label
self.attributedText = balanceString
self.sizeToFit()
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,图标没有垂直对齐
有谁知道我该如何对齐它?
谢谢!
ios ×9
swift ×3
uilabel ×3
ios7 ×2
cocoa ×1
custom-font ×1
iphone ×1
objective-c ×1
swift4 ×1
textkit ×1
uibutton ×1
uitableview ×1
uiwebview ×1
xcode ×1