【问题标题】:UITextView setTextColor changes layout in UITableViewCellUITextView setTextColor 更改 UITableViewCell 中的布局
【发布时间】:2012-05-24 12:20:14
【问题描述】:

我正在尝试使用以下页面上的解决方案: UITextView highlightedTextColor or similar option?

但是,我发现当我在 UITextView 上调用 setTextColor 并将颜色设置为 Color blackColor 以外的任何颜色时,UITextView 中的内容似乎发生了变化,并且我设置的颜色不会。

玩玩,我可以通过在我的 UITableViewCell 中修改以下初始化代码来重复此行为:

_notesTextView = [[UITextView alloc] initWithFrame:CGRectZero];
[_notesTextView setFont:[UIFont systemFontOfSize:12.0]];
[_notesTextView setTextColor:[UIColor redColor]];
[_notesTextView setUserInteractionEnabled:NO];
[self.contentView addSubview:_notesTextView];

与我保留默认颜色或设置为 blackColor 时相比,上面的代码将导致 textView 显示与我期望的偏移,并且文本也不显示为红色。

这太奇怪了 - 知道可能是什么问题吗?

【问题讨论】:

  • 截图?没什么可做的。

标签: objective-c ios


【解决方案1】:

不要使用 CGRectZero,因为它会根据情况将帧初始化为您可能知道的某个值,因此如果您创建了自定义 UITableViewCell,那么只需在 init 中设置帧或

-(void)layoutSubViews
{

}

【讨论】:

  • 我正在子类化,并且已经在实现 layoutSubviews 方法。
  • 是的,但是设置了一个框架,而不是 CGRectZero ..在您希望控件出现的子视图中提供一些绝对框架。
【解决方案2】:

我已经确认 textColor 确实改变了文本位置(对我来说是上下移动)。我也尝试过使用 initWithFrame(50, 20, 250, 31),但仍然遇到同样的问题。

我发现解决此问题的方法是使用属性 textAlignment 并将其设置为以下值之一:UITextAlignmentCenter、UITextAlignmentLeft、UITextAlignmentRight。

【讨论】:

  • 我发现了和@Vadoff 一样的东西。另一个奇怪的事情是,我只发现这个工件的字体大小为 12。当我尝试 10、11、13、14、16 和 18 的大小时,无论颜色如何,文本的位置都是相同的,没有设置对齐方式.我没有看到操作提到的行为,即颜色集没有出现。
  • 设置 textAlignment 确实解决了我的偏移文本问题。
  • 我仍然有文本颜色没有改变的问题。我将回到链接的示例,在那里询问有关该问题的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
  • 2013-10-25
  • 2016-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多