2016-05-24 2 views
3

Я использую структуру Eureka и недавно добавленный код, чтобы разрешить разделители ячеек по краям. При этом все элементы формы должны иметь определенный запас, иначе они начинаются в самом левом углу экрана.Как установить поля заголовка/нижнего колонтитула раздела в Eureka без создания пользовательских классов

Есть ли способ отрегулировать левое/правое поле заголовка/нижнего колонтитула секции аналогично ячейке? Я пытаюсь избежать использования пользовательских классов для каждого заголовка раздела/заголовка.

Я попытался посмотреть исходный код, чтобы увидеть, как создается представление, но я не вижу нигде, где он определяет координаты x-координаты или слева/справа, и т. Д. Я также не вижу никаких свойств, которые Я мог бы выполнить это.

Любая помощь была бы принята с благодарностью!

  +++ Section(){section in 
       var footer = HeaderFooterView<UITableViewHeaderFooterView>(.Class) 
       footer.onSetupView = {view, _, _ in 
        view.preservesSuperviewLayoutMargins = false 
        view.layoutMargins.left = 50 
        view.layoutMargins.right = 50 
        view.contentView.preservesSuperviewLayoutMargins = false 
        view.contentView.layoutMargins.top = 10 
        view.contentView.layoutMargins.left = 50 
        view.textLabel?.text = "This is a test footer message." 
        view.textLabel?.layoutMargins.top = 10 
        view.textLabel?.font = UIFont.preferredFontForTextStyle("Footnote") 
       } 
       section.header = HeaderFooterView<ALogoView>(HeaderFooterProvider.Class) 
       section.footer = footer 
       } 

Редактировать: Я пробовал выше, но это не работает. Если вы вставляете длинную строку, она перемещается в строки родительского раздела.

Edit2: Я придумал следующее

class GenericHeader: UIView { 

override init(frame: CGRect) { 
    super.init(frame: frame) 
    self.preservesSuperviewLayoutMargins = false 
    let textView = UILabel() 
    textView.frame = CGRect(x: 0, y: 0, width: UIScreen.mainScreen().bounds.width - 30, height: 20) 
    textView.text = "This is a very very very long title, This is a very very very long title, This is a very very very long title, This is a very very very long title, This is a very very very long title, This is a very very very long title Let's add some more stuff here to see how it handles." 
    textView.numberOfLines = 0 
    textView.textAlignment = .Justified 
    textView.font = UIFont.preferredFontForTextStyle(UIFontTextStyleBody) 
    textView.textColor = UIColor(red:0.47, green:0.47, blue:0.49, alpha:1.0) 
    textView.frame = textView.bounds 
    textView.sizeToFit() 
    self.addSubview(textView) 
    //self.frame = CGRect(x: -15, y: -3, width: textView.bounds.width - 16, height: textView.bounds.height) 
    self.bounds = CGRect(x: -15, y: -3, width: textView.bounds.width - 16, height: textView.bounds.height) 
} 

required init?(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 
} 

Я использую это в моей форме:

+++ Section() { 
    $0.header = HeaderFooterView<GenericHeader>(HeaderFooterProvider.Class) 
    $0.footer = HeaderFooterView<GenericFooter>(HeaderFooterProvider.Class) 
} 

Как я могу передать строку, когда классы/колонтитулы создаются так, что мне не нужно писать миллион разных классов/представлений с другим текстом?

+0

Привет, это сделал работал? У вас есть образец изображения о том, как он выглядит? Оцените это – VAAA

ответ

0

Я добавил margings вид ячеек таблицы, делая это каждую строку г N ....

TextRow.defaultCellSetup = { cell, row in 
    cell.preservesSuperviewLayoutMargins = false 
    cell.layoutMargins.left = 0 
    cell.contentView.preservesSuperviewLayoutMargins = false 
    cell.contentView.layoutMargins.left = 50 
} 

ButtonRow.defaultCellSetup = { cell, row in 
    cell.preservesSuperviewLayoutMargins = false 
    cell.layoutMargins.left = 0 
    cell.indentationLevel = 5 
} 

Посмотрите на этот вопрос, который объясняет немного больше ... https://github.com/xmartlabs/Eureka/issues/438

+0

Привет, спасибо за ваш ответ. Я на самом деле автор потока github, и для заголовков и нижних колонтитулов разделов нет defaultCellSetup. Он использует другой способ визуализации этих элементов пользовательского интерфейса. Я создал новую проблему в github, потому что .onSetupView, похоже, не принимает никаких настроек полей. – Plastus

+0

Чтобы добавить поля в верхние и нижние колонтитулы раздела, вам необходимо будет реализовать пользовательский вид asz, описанный в этом разделе readme: https://github.com/xmartlabs/Eureka#section-header-and-footer – mtnBarreto

+0

Код, указанный выше, заключается в настройке поля в случае, если заголовки таблиц по умолчанию соответствуют вашим потребностям. Если вам нужна дополнительная настройка в заголовке раздела, вы должны перейти к пользовательским представлениям. – mtnBarreto

Смежные вопросы