我正在编写一个扩展来桥接FirebaseDatabase和Eureka之间的字典值.
private extension Dictionary {
func firebaseFriendlyDictionary() -> [String: Any?] {
return self.map({ (key: String, value: Any?) -> (String, Any?) in
if value is NSDate {
return (key, (value as! NSDate).timeIntervalSince1970)
}
return (key, value)
})
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试构建时,我会抛出此错误:
map produces '[T]', not the expected contextual result type '[String: Any?]'
全部 -
我刚开始在iOS项目中使用Eureka表单构建器,它有很多很棒的功能.它做得非常好.
但是,我最终意识到,似乎没有一种好方法可以自定义任何给定行的高度.[有趣的是,在示例应用程序中,展示不同功能的许多不同行都具有相同的高度.]
当然,我可以覆盖heightForRowAtIndexPath(我已尝试过)...但是当它们被隐藏和取消隐藏时,动态添加行(和索引),这会使事情变得更复杂.
在为此进入更多变通方法之前:是否有更简单/更优雅的方法来调整框架内的各个行高?
我想集中的每一行,或者它的定义范围内的任何给定行的高度.cellSetup
,.cellUpdate
或者类似的倒闭.
或者更好的是,是否有一种简单的方法让UITableView 只根据所使用的实际字体大小,仅使用那些使用的标签的"内在"尺寸?换句话说,如果给定行中的字体较小,则该行高度应相应较小.
在这一点上,你非常感谢你的帮助.
先感谢您!
我正在使用Eureka在iOS中使用Swift构建表单.我创建了一个多值部分,例如:
form +++ MultivaluedSection(multivaluedOptions: [.Insert, .Delete], header: "My Header", footer: "My footer") { section in
section.tag = "mySectionTag"
section.addButtonProvider = { _ in
return ButtonRow() { row in
row.title = "Add row"
}
}
section.multivaluedRowToInsertAt = { index in
return TimeInlineRow() { row in
row.title = "My row title"
}
}
// initialize form with any times that have already been set previously, times: [Date]
for time in times {
section <<< TimeInlineRow(tag) { row in
row.value = …
Run Code Online (Sandbox Code Playgroud) 由于Eureka用于创建包含不同数据类型的新记录,其中一个是MediaPicker
,我想知道如何呈现其viewController.
哪一排可以完成这项工作?PushRow
要么ButtonRow
这是我的课程,我尝试创建它.
import UIKit
import MediaPlayer
import Eureka
public final class MusicRow<T: Equatable> : SelectorRow<T, PushSelectorCell<T>, SelectorViewController<T>>, RowType {
public required init(tag: String?) {
super.init(tag: tag)
presentationMode = .Show(controllerProvider: ControllerProvider.Callback {
return AddMusicViewController(){ _ in }
}, completionCallback: { vc in
vc.navigationController?.popViewControllerAnimated(true)
})
}
}
public class AddMusicViewController: MPMediaPickerController, MPMediaPickerControllerDelegate {
var musicPicker: MPMediaPickerController!
public var row: RowOf<MPMediaItemCollection>!
public var completionCallback : ((UIViewController) -> ())?
public override func viewDidLoad() {
super.viewDidLoad()
// Do any …
Run Code Online (Sandbox Code Playgroud) 我们正在评估 Eureka Forms,并创建了一个带有几个 FieldRows 的简单表单。我看到如何从表单中获取所有值,以及如何使用 onChange()(逐个字符地)更改任何行时如何响应,但对我来说如何响应字段的编辑完全完成,而不是随着每个字符的输入而完成。
在普通的文本字段中,我们可以将视图控制器或 tableview 的单元格设置为文本字段的委托并响应 textField:didFinishEditing: 并在那里处理它。
如何使用 Eureka Forms 字段行做到这一点?
谢谢
我使用Eureka库,我遇到了一个问题.我需要一个多行标签行,但不知道该怎么做.我只能看到带截断标签行的单行.
class MainViewController: FormViewController {
override func viewDidLoad() {
super.viewDidLoad()
form +++=
Section()
<<< LabelRow { row in
row.title = "Hello World 1. Hello World 2. Hello World 3"
}
}
Run Code Online (Sandbox Code Playgroud) 当选择Eureka表单行时,如何在键盘顶部删除带有"<> Done"的工具栏?我只想拥有常规键盘.从文档中不清楚如何做到这一点.此外,这个工具栏通常在iOS文档中被称为什么?谢谢.
我正在构建一个Eureka表单,并希望在表单中放置一个循环来构建基于数组的步进器列表.
我试图使用的代码是:
let itemNames = ["one","two","three"]
// Eureka From Set-up
form
+++ Section("Select item values")
for itemName in itemNames{
<<< StepperRow() {
$0.tag = itemName
$0.title = itemName
$0.value = 0
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,我在StepperRow行上出现了一个错误:
Unary operator cannot be separated from its operand
Run Code Online (Sandbox Code Playgroud)
所以看起来好像Swift不再认为它在表单中并且正在将<符号视为小于,而不是行声明.
有关如何解决这个问题的任何想法?
我在我的项目中实现了一个新库(名为Eureka),现在尝试上传到 App Store / TestFlight 时出现错误。
其中包括“不支持的体系结构”、“无效的段对齐”和“二进制文件无效。该二进制文件似乎不是使用 Apple 的链接器构建的”。
在实现 Eureka 之前我没有出现任何这些错误。我正在运行 Xcode 7.3
我应该注意我通过 Carthage 安装了框架。
我正在将一个旧项目迁移到Swift 4,所以我自然也更新到了Eureka 4.3.
在旧项目中,有一个自定义行调用LatitudeSelectorRow
了一个LatitudeSelectorController
.
LatitudeSelectorRow
过去看起来像这样:
final class LatitudeSelectorRow: SelectorRow<PushSelectorCell<CLLocationDegrees>, LatitudeSelectorController> {
required init(tag: String?, _ initializer: ((LatitudeSelectorRow) -> ())) {
super.init(tag: tag)
initializer(self)
// Focus on here!!
presentationMode = PresentationMode.show(controllerProvider: ControllerProvider.storyBoard(storyboardId: "LatitudeSelector", storyboardName: "Main", bundle: nil), completionCallback: {
_ in
})
displayValueFor = {
...
}
}
required convenience init(tag: String?) {
self.init(tag: tag)
}
}
Run Code Online (Sandbox Code Playgroud)
而LatitudeSelectorController
用于像这样:
class LatitudeSelectorController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, TypedRowControllerType {
/// A closure to be called when the controller …
Run Code Online (Sandbox Code Playgroud) eureka-forms ×10
ios ×10
swift ×8
app-store ×1
carthage ×1
firebase ×1
swift2 ×1
swift3 ×1
uitableview ×1
xcode ×1