GitHawkApp / MessageViewController

A SlackTextViewController replacement written in Swift for the iPhone X.

Home Page:http://githawk.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to remove the animation

lohenyumnam opened this issue · comments

commented

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 ??

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

commented

out

I don't think this is normal

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

commented

@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
    }
}

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

commented

@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

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

commented

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

UIView.performWithoutAnimation {
            self.setup(scrollView: tableView)
        }
commented

@BasThomas @nathantannar4 I think this problem is a bug

@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?

commented

@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

commented

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

commented

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'

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

commented

@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 ?