iPhone:inputAccessoryView 上的上一个/下一个按钮的透明度不同
Posted
技术标签:
【中文标题】iPhone:inputAccessoryView 上的上一个/下一个按钮的透明度不同【英文标题】:iPhone: varying transparency of previous/next button on inputAccessoryView 【发布时间】:2012-05-26 19:59:56 【问题描述】:短版:我有一个使用 UISegmentedControl 的有效解决方案,但我不喜欢它的外观。当我使用 Safari 时,当它位于输入字段列表的开头或结尾时,它会“变暗”上一个或下一个。我无法说服 UISegmentedControl 这样做,那么他们是怎么做到的?
长版: 我有一个带有文本字段的单元格的 UITableView。文本字段采用数字输入(通常是浮点数)。这意味着我使用keyboardType = UIKeyboardTypeDecimalPad 呈现键盘。这也意味着没有返回按钮,所以我需要一种在单元格之间移动的好方法,而不是触摸单元格。我想像 ios Safari 那样做——用一个小工具栏写着“上一个 | 下一个……完成”。
我的代码可以完成所有这些工作(将 textField.inputAccessoryView 设置为具有相应按钮的 UIToolbar 的实例),对上一个和下一个按钮使用 UISegmentedControl。我有这样的工作,以便下一个移动到下一个单元格,前一个移动到上一个单元格。
那我为什么会在这里?我无法让 iOS Safari 中看到的变暗的上一个/下一个行为与 UISegmentedController 一起使用,如果我不需要的话,我真的不想自己实现所有这些(那时,我的 CCB 将调用一个它用于拒绝更改的两条规则中的一条: 规则 1)如果我认为这不是一个好主意,那么我不会实施它;规则 2)如果这很容易,我可能会这样做)。
(我会发布图片,但我对 SO 太陌生了 - 抱歉)
当我尝试做同样的事情时,它看起来和行为都像 Safari 中间文本字段,但我似乎无法让它看起来像第一个或最后一个文本字段的 Safari 版本。
我尝试过启用、选择甚至更改栏的背景颜色,但它们似乎都不起作用。背景颜色似乎最接近,但我必须根据第一个、最后一个或中间的时间有 3 个不同的工具栏,即使这样也不是很好。
【问题讨论】:
【参考方案1】:解决了。问题是在 IB 中设置的各个段的“启用”设置不会使其成为可执行文件。我必须以编程方式禁用视图控制器中的上一个或下一个段。一旦我这样做了,它现在就如我所愿。
当我在 IB 中设置 UISegmentedControl 时,我将一个段设置为启用,另一个设置为禁用(== 未启用)。在调试器中,我开始浏览各个段的设置,发现实际上将段设置为禁用会使其按我想要的方式工作。
例如,在包含附加到“nextControl”的 UISegmentedControl 的“nextToolbar”中,只有“下一步”按钮应显示为活动状态。这意味着我必须将上一个按钮设置为禁用。 Previous 按钮位于索引 0,因此禁用它意味着在使用它之前在某处执行此操作(我将其放在 viewDidLoad 中:):
[self.nextControl setEnabled:NO forSegmentAtIndex:0]
同样,对于 prevControl,只有上一个按钮应该处于活动状态,我使用:
[self.previousControl setEnabled:NO forSegmentAtIndex:1]
【讨论】:
以上是关于iPhone:inputAccessoryView 上的上一个/下一个按钮的透明度不同的主要内容,如果未能解决你的问题,请参考以下文章
iPhone:inputAccessoryView 上的上一个/下一个按钮的透明度不同