A lightweight TextView where can be attached any UIView

YanagiText ?

YanagiText allows us to add any UIView to UITextView!

Installation ?

CocoaPods

You can use CocoaPods to install YanagiText by adding it to your Podfile:

pod 'YanagiText'

Carthage

Create a Cartfile that lists the framework and run carthage update. Follow the instructions to add $(SRCROOT)/Carthage/Build/iOS/YanagiText.framework to an iOS project.

github "YuigaWada/YanagiText"

Manually

  1. Download and drop YanagiText in your project.
  2. Congratulations!



Usage ?

YanagiText.getViewString registers a view internally, so you must call this methods via your TextView where you wanna add the view.

@IBOutlet weak var textView: YanagiText!

override func viewDidLoad() {
    super.viewDidLoad()

    // You can add a view to your UITextView
    self.textView.attributedText = self.textView.getViewString(with: anyView, size: anyView.frame.size)
}

If you wanna set YanagiText.isEditable = true, write the following code.

class YourViewController: UIViewController, UITextViewDelegate {

  override func viewDidLoad() {
      super.viewDidLoad()
      self.textView.delegate = self
  }

      ...

  func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
      return self.textView.shouldChangeText(textView, shouldChangeTextIn: range, replacementText: text)
  }

GitHub