UITextView vs UILabel:关于行间距

时间:2015-06-18 16:34:18

标签: ios objective-c uilabel uitextview

所以我有一个UIView子视图,顶部有一个UILabel,静态文本和最小比例(处理4“vs 6个双胞胎)。

在那之下,我有三行带有静态字符串的文本。

在那之下,我有一个带有自定义边框,圆角半径的按钮。

我的尺寸和间距有问题。使用4英寸屏幕,我希望行间距为0,以便UILabelUIButton在视图的顶部和底部之间具有相同的间距。

对于6/6 +屏幕,我希望行间距为1.5~2.0:

使用UITextView,我禁用了用户互动和滚动,我在IB中设置了字体属性,在我的ViewController中,我使用{{1}的条件运算符覆盖layoutManager/lineSpacingAfterGlyphAtIndex }和mainScreen边界检查屏幕高度并返回基于4“/4.7”/5.5“屏幕尺寸的浮动。

效果很好,看起来很棒,没有互动问题。

但是我的同事坚持认为我应该使用:UI_USER_INTERFACE_IDIOM来计算行数,因为使用UILabel这是静态文本并且让我感到羞耻。

是否存在程序化的SYSTEMATIC原因我应​​该使用UITextView而不是UILabel?不,我不是在寻找罐装副本/粘贴“UITextView用于静态文本而UILabel用于您希望编辑的文本等等。”我想知道TextView为了覆盖行间距而禁用其用户交互属性时的实际基本差异。

2 个答案:

答案 0 :(得分:0)

不可编辑的文本可以显示在UILabel中,就像您要编辑用户输入/滚动功能等文本一样,您可以使用textview。

如果您希望用户选择UI上显示的文字;你可以去看textview。 uilabel不支持选择和复制。

UIlabel派生自UIview,但uitextview派生自UIScrollView。所以它也继承了scrollview的属性。 uitextview符合键盘处理协议

答案 1 :(得分:0)

使用UITextview而不是UIlabel并不可耻。

UILabel:如果没有动作,你可以将它用于静态文本。

示例:静态文本中的可点击链接。

禁用“文本视图”中的“编辑”功能仅禁用“编辑”。它不会删除用户交互。因此,如果静态文本中有任何链接或主题标签,它将自动检测。

喜欢 - > #iphone @Ram http://google.com

UILabel不会检测到这些东西。

以前很多人都在继承UILabel来获取此功能。 UITextView内置了这个功能。

因此,如果静态文本中有任何可点击的组件,请使用UITextview。否则只使用UILabel。