2016-12-02 3 views
1

MultipleSelectorRowで提示されたコントローラの背景をカスタマイズしようとしていますが、できません。MultipleSelectorRowのカスタマイズ

<<< MultipleSelectorRow<String>("select") { row in 
    row.options = values 
    row.onPresentCallback = { _, to in 
    let backgroundView = UIView(frame: CGRect(x: 0, y: 0, width: (self.tableView?.bounds.size.width)!, height: (self.tableView?.bounds.size.height)!)) 
    backgroundView.backgroundColor = UIColor.red 
    to.tableView?.backgroundView = backgroundView 
    } 
    } 

コールバックが発生したときにto.tableViewがnilであるため、これは機能しません。

は、私はユーレカライブラリを変更せずにコントローラを変更することはできないと思う

編集: eureka form MultipleSelectorRow

おかげ

答えて

1

、私は次のように元MultipleSelectorViewControllerをサブクラス化:

import Foundation 
import Eureka 
import ChameleonFramework 

public class MFAMultipleSelectorViewController<T:Hashable> : MultipleSelectorViewController<T> { 

    open override func viewDidLoad() { 
    super.viewDidLoad() 
    setTableViewBackgroundGradient(FlatMintDark(), FlatMintDark().lighten(byPercentage: 0.05)!) 
    } 
    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
    cell.backgroundColor = ClearColor() 
    } 
} 

open class _MFAMultipleSelectorRow<T: Hashable, Cell: CellType>: GenericMultipleSelectorRow<T, Cell, MFAMultipleSelectorViewController<T>> where Cell: BaseCell, Cell: TypedCellType, Cell.Value == Set<T> { 
    public required init(tag: String?) { 
    super.init(tag: tag) 
    } 
} 

public final class MFAMultipleSelectorRow<T: Hashable> : _MFAMultipleSelectorRow<T, PushSelectorCell<Set<T>>>, RowType { 
    public required init(tag: String?) { 
    super.init(tag: tag) 
    } 
} 

screenshot

0

使用default cell customizer:よりよく理解するためにいくつかのスクリーンショットを追加します。私は解決策を見つけた

LabelRow.defaultCellUpdate = { cell, row in 
    cell.contentView.backgroundColor = .red 
    cell.textLabel?.textColor = .white 
    cell.textLabel?.font = UIFont.boldSystemFont(ofSize: 13) 
    cell.textLabel?.textAlignment = .right 
+0

これは 'self.tableView .backgroundColor = – avalla

+0

提示のViewControllerと相互作用しません? UIColor.green'これはあなたの問題を解決するはずです(テスト済みです、今はすべて緑色です) – Fabiosoft

+0

コールバックの中に?私はあなたがフォームについて話していると思います。タップの後に提示される複数選択ビューコントローラについてではありません。 – avalla

関連する問題