From 80f6611e42257002018d00a6f990234c4e4e7723 Mon Sep 17 00:00:00 2001 From: Nathan Tannar Date: Mon, 25 Sep 2017 12:52:02 -0700 Subject: [PATCH] [Documentation] MessageInputBar.md --- Assets/MessageInputBarLayout.png | Bin 0 -> 23426 bytes Documentation/MessageInputBar.md | 96 ++++++++++++++++++ ...BarItem.swift => InputBarButtonItem.swift} | 0 3 files changed, 96 insertions(+) create mode 100644 Assets/MessageInputBarLayout.png create mode 100644 Documentation/MessageInputBar.md rename Sources/{InputBarItem.swift => InputBarButtonItem.swift} (100%) diff --git a/Assets/MessageInputBarLayout.png b/Assets/MessageInputBarLayout.png new file mode 100644 index 0000000000000000000000000000000000000000..1ef5e1c38f110d2fdbcf511cbf80d37000158753 GIT binary patch literal 23426 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 + +```swift +H:|-(padding.left)-[UIStackView(leftStackViewWidthContant)]-(textViewPadding.left)-[InputTextView]-(textViewPadding.right)-[UIStackView(rightStackViewWidthContant)]-(padding.right)-| + +V:|-(padding.top)-[InputTextView]-(textViewPadding.bottom)-[UIStackView]-(padding.bottom)-| +``` + +It is important to note that each of the `UIStackView`'s to the left and right of the `InputTextView` are anchored by a width constraint. This way the `InputTextView` will always fill the space inbetween in addition to providing methods that can easily be called to hide all buttons to the right or left of the `InputTextView` by setting the width constraint constant to 0. + +```swift +func setLeftStackViewWidthConstant(to newValue: CGFloat, animated: Bool) +func setRightStackViewWidthConstant(to newValue: CGFloat, animated: Bool) +``` + +## InputBarButtonItem + +It is recommended that you use the `InputBarButtonItem` for the `UIStackView`'s. This is because all `UIStackView`'s are intitially set with the following properties: + +```swift +let view = UIStackView() +view.axis = .horizontal +view.distribution = .fill +view.alignment = .fill +view.spacing = 15 +``` + +This will layout the arrangedViews based on their intrinsicContentSize and if there is extra space the views will be expanded based on their content hugging `UILayoutPriority`. + +### Size + +Each `InputBarButtonItem`'s `intrinsicContentSize` can be overridden by setting the `size` property. It is optional so when set to `nil` the `super.intrinsicContentSize` will be used. + +### Spacing + +Spacing can be set using the `spacing` property. This will change the content hugging `UILayoutPriority` and add extra space to the `intrinsicContentSize` when set to `.fixed(CGFloat)`. + +### Hooks + +Each `InputBarButtonItem` has properties that can hold actions that will be executed during various hooks such as the button being touched, the `InputTextVIew `text changing and more! Thanks to these easy hooks with a few lines of code the items can be easily resized and animated similar to that of the Facebook messenger app. + +```swift +// MARK: - Hooks + +public typealias InputBarButtonItemAction = ((InputBarButtonItem) -> Void) + +private var onTouchUpInsideAction: InputBarButtonItemAction? +private var onKeyboardEditingBeginsAction: InputBarButtonItemAction? +private var onKeyboardEditingEndsAction: InputBarButtonItemAction? +private var onTextViewDidChangeAction: ((InputBarButtonItem, InputTextView) -> Void)? +private var onSelectedAction: InputBarButtonItemAction? +private var onDeselectedAction: InputBarButtonItemAction? +private var onEnabledAction: InputBarButtonItemAction? +private var onDisabledAction: InputBarButtonItemAction? +``` + +## Further Questions? + +Contact the components author [Nathan Tannar](https://github.com/nathantannar4) on the Slack channel. + diff --git a/Sources/InputBarItem.swift b/Sources/InputBarButtonItem.swift similarity index 100% rename from Sources/InputBarItem.swift rename to Sources/InputBarButtonItem.swift