GitHawkApp / MessageViewController

A SlackTextViewController replacement written in Swift for the iPhone X.
http://githawk.com
MIT License
1.68k stars 92 forks source link

How to remove the animation #86

Open lohenyumnam opened 5 years ago

lohenyumnam commented 5 years ago

I am using this MessageViewController, with IGListKit, and I notice something when the viewController appears there is some kind of animation. is this just me ??

nathantannar4 commented 5 years ago

Could you describe what animation you are seeing and how it differs from your expectations? Or attach a .gif?

lohenyumnam commented 5 years ago

out

I don't think this is normal

BasThomas commented 5 years ago

That indeed does not look normal. Can you post some of your code, and explain when this behavior occurs?

lohenyumnam commented 5 years ago

@BasThomas This animation appears when this particular collectionView or tableview appear, here is the slow motion GIF of it vv

and the code is nothing fancy. just a normal tableView.

import UIKit
import MessageViewController

class ViewController: MessageViewController {
    let tableView = UITableView()

    override func viewDidLoad() {
        super.viewDidLoad()
        setup(scrollView: tableView)
        // Change the appearance of the text view and its content
        messageView.inset = UIEdgeInsets(top: 16, left: 16, bottom: 16, right: 16)
        messageView.textView.placeholderText = "New message..."
        messageView.textView.placeholderTextColor = .lightGray
        messageView.font = .systemFont(ofSize: 17)
        messageView.backgroundColor = .yellow
        self.borderColor = .red

        // Setup the button using text or an icon
        messageView.setButton(title: "Send", for: .normal, position: .right)
        messageView.rightButtonTint = .blue

        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
        tableView.dataSource = self

    }
}

extension ViewController: UITableViewDataSource {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 5
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
        cell.backgroundColor = .green
        return cell
    }
}
nathantannar4 commented 5 years ago

I believe changing messageView.inset and calling messageView.setButton will trigger a new layout is needed, try calling layoutIfNeeded at the end of viewDidLoad

lohenyumnam commented 5 years ago

@nathantannar4 Not working. I tried calling on

messageView.layoutIfNeeded()
tableView.layoutIfNeeded()
self.view.layoutIfNeeded()

I upload the code example here https://github.com/lohenyumnam/MessageViewControllerTest

nathantannar4 commented 5 years ago

I think this is only present when you set MessagesViewController as the root of a UIWindow launching. It seems to be animating the layout. When I put super.viewDidLoad() and your setup code in UIView.performWithoutAnimation { } the issue goes away. Or it could be something in MessagesViewController, haven't looked super deep into it

lohenyumnam commented 5 years ago

It's not working for me. @nathantannar4 even with this code

UIView.performWithoutAnimation {
            self.setup(scrollView: tableView)
        }
lohenyumnam commented 5 years ago

@BasThomas @nathantannar4 I think this problem is a bug

nathantannar4 commented 5 years ago

@lohenyumnam If you refer to my last comment I meant ALL setup code in viewDidLoad, not just the scroll view setup.

Im not sure how much of a bug this would be, as its only reproducible during app launch. Do you have a specific use case for why you're using MessagesViewController as your root vc?

lohenyumnam commented 5 years ago

@nathantannar4 I tried putting all the code inside the UIView.performWithoutAnimation , got the same result. And as for root vc the animation still occurs even if it's not root vc.

msg

lohenyumnam commented 5 years ago

This Unusual animation doesn't seem to occur in the example project, so what I did is I copy the example's ViewController code to my ViewController and here is the result. we can see the same animation.

ee

And I didn't stop, there just to make sure, this time I copy my ViewController's code to example's ViewController and here is the result

example

lohenyumnam commented 5 years ago

Ok here is the thing this problem seems to go away if I install from master

pod 'MessageViewController', :git => 'https://github.com/GitHawkApp/MessageViewController.git', :branch => 'master'

nathantannar4 commented 5 years ago

Possibly fixed in https://github.com/GitHawkApp/MessageViewController/pull/72 then?

lohenyumnam commented 5 years ago

@nathantannar4 I am not sure, but master branch doesn't seems to have the problem. is there any reason why the default pod version is not pointing to the latest version ?