- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个自定义 UITableViewCell
它显示一些日期并显示 UIDatePicker
选择时作为键盘。
虽然我发现了几个处理这个问题的主题,但它们都提供了相同的解决方案:添加 UITextField
到单元格并设置 UIDatepPicker
如inputView
此文本字段的。
这个解决方案工作正常,但我不喜欢它。这是相当老套的,如果不需要编辑文本,则不必使用 TextField。我所需要的只是一个显示数据的标签和一个用于更改此日期的 DatePicker 键盘。
<小时/>我尝试过的:
深入研究后我发现 UITableViewCell
有自己的inputView
它继承自 UIResponder
的属性。但是,我无法覆盖( Cannot override with a stored property 'inputView'
)或分配此属性( Cannot assign to property: 'inputView' is a get-only property
)。 canBecomeFirstResponder
也是如此。以及必须实现/更改的其他属性,以便让单元格首先工作Responder/inputView。
我想知道如何UITextField
已实现,因为这也是 UIResponder
子类。
长话短说:
是否可以创建我自己的 UIView
(或者更好 UITableViewCell
)充当一种输入 View 并显示自定义键盘的子类?
或者使用(隐藏的)TextField 真的是最好的解决方案吗?
最佳答案
正如评论中已经提到的那样,它没有什么“hacky”。这是标准程序。尽管您的输入 View 可能看起来像标签或按钮,但它仍然是一个输入字段,它打开一个类似于使用日期选择器的键盘的对话框。
但是如果你真的不想使用这个,那么还有几种选择。我假设当按下一个单元格(或其一部分)时,日期选择器应该出现在某处。那么答案就非常简单了;创建一个事件,当按下该区域时将触发该事件。您可以使用按钮,您可以使用表格 View 单元格委托(delegate)来检查何时按下行,或者如果您认为它更适合您,您甚至可以添加手势识别器。
无论如何,一旦您举办事件,您就可以在任何您想要的地方展示您的日期选择器。这可以呈现一个新窗口或将其放入 View Controller 中,甚至如果您愿意,也可以放入 TableView 中。
但是无论您自定义什么,都会否定 iOS 设备的 native 逻辑,这可能会困扰某些用户。例如,如果您在选择器显示时没有制作完全相同的动画,那么对于习惯于以原生方式处理事物的用户来说,这可能会看起来很奇怪。
或者也许你可以做得比原生更好,在这种情况下就去做吧。但请注意,您可能有一项艰巨的任务需要完成。动画、触摸事件、关闭日期选择器、重新定位表格 View 以使日期选择器不会与单元格重叠...
关于ios - 了解 inputView 和firstResponder : How to create a UITableViewCell which shows a UIDatePicker as Keyboard?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60169640/
我有一个扩展程序,我已经拆掉了裸机,它使自己处于不正确的状态,当它折叠时它会说“显示更少”。 这有两种情况 我使用“显示更多”展开扩展,然后离开屏幕。我打开另一个应用程序,然后返回到扩展程序。扩展的扩
为什么这些不相等? show $ if someCondition then someInt else some double 和 if someCondition then show someInt
下面给出的代码可以编译,ok。 data Car p q r = Car {company :: p , model :: q
是否可以在表结构中的“显示 0 到 0 个条目中的 0 个条目”旁边显示“显示条目”下拉列表。我想在底部显示“显示条目”下拉列表以及分页并显示 0 到 0 个条目,共 0 个条目。 提前致谢!!! 图
我不明白当你这样做一连串 .show() 时会发生什么。我也没有编写这段代码,也不知道如何弄清楚这里发生了什么。因此就有了这个问题。 // Remove favorite category
$(document).ready(function(){ $('html').addClass('js'); var contactForm = {
因此,在实现上一个问题的 jQuery 代码后,我注意到以下内容,每当人们添加位于显示较少/显示更多菜单中的产品时,系统会刷新页面,因为它会重新计算价格,因此也会刷新页面。但是当发生这种情况时,菜单会
我已经在 Windows 上设置了 mongodb 64bits。我成功运行了服务器和客户端。 但是当我输入时: show dbs 输出是 local 0.000GB 为什么? show dbs 应
正如标题所说,我有兴趣使用 Show a在我有 Show (a,b) 的情况下. GADT 很容易出现这个问题,如下所示: data PairOrNot a where Pair :: (b,c)
通常 julia> Base.show(io::IO, a::Int) = print(io, "xx") show (generic function with 98 methods) julia>
通常 julia> Base.show(io::IO, a::Int) = print(io, "xx") show (generic function with 98 methods) julia>
我找不到关于 Readline 选项 show-all-if-ambiguous 和 show-all-if-unmodified 之间区别的明确解释,以及是否它们影响不同的事物或相互排斥。关于这个主
我是 BeautifulSoup 的新手,我遇到了一些我不明白的问题,我认为这个问题可能尚未得到解答,但在这种情况下,我找到的答案都没有帮助我。 我需要访问 div 的内部以检索网站的词汇表条目,但是
我已经为 iOS 10 实现了新的小部件,并使用以下代码为其设置高度: @available(iOSApplicationExtension 10.0, *) func widgetActiveDis
克隆远程 git 存储库并发出 git show --show-signature 后,它说签名是好的。然后我更改了一些文件并测试了相同的命令,它仍然说签名是好的。 上面的命令到底检查了什么?验证克隆
我陷入了这个问题,而且我对 Haskell 很陌生,我试图用以下代码完成第一个欧拉问题: main = putStrLn . show . sum $ [3,6..1000]:[5,10..1000]
我有一个独立的 Android 和 iOS 应用程序。 目前正在 Android 上测试推送通知。 我已经使用以下通知键设置了我的 app.json "notification":{ "i
我所说的示例:http://jsfiddle.net/bsnxp/1/ 如果你检查源 .show().clone() display 是 inline-block (它应该是什么)并且 .clone(
我正在使用下面的 jQuery 代码来显示/隐藏网页上的额外文本 jQuery.fn.shorten = function(settings) { var config = { showC
我有一个带有 ng-show 的 div。这个 div 是我创建的自定义指令的包装器。 HTML JS function myDirective() { function doS
我是一名优秀的程序员,十分优秀!