Hi Andreas, good question! It's actually controlled on the previous viewcontroller, the intro screen. I didn't want the navigation bar showing on the intro screen so I used this code: override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) navigationController?.setNavigationBarHidden(true, animated: false) } override func viewDidDisappear(_ animated: Bool) { super.viewDidDisappear(animated) navigationController?.setNavigationBarHidden(false, animated: animated) } Then when you leave the intro viewcontroller, *viewDidDisappear* gets run and it animates the showing of the navigation bar on the second view. Hope this helps! Mark
Thank you..!! Four days of not being able to animate a view and your tutorial solved it..!! Thanks, Mark, for these very accessible videos. You're a terrific teacher.
In a nutshell, your videos offer WAAAAY more than the title says. It is filled with useful tips and tricks , and that's why i love your videos. Keep it up man.
Actually, "identity" is probably the most-apropos term (in fact, it was the word that I expected to see you type before you even typed it). In mathematics, an "identity" value for an operation is something which doesn't change another value when you perform that operation with it. For example, 0 is the "additive identity" because any number you perform "+ 0" on leaves the number unchanged. Likewise, 1 is the "multiplicative identity" because anything you perform "* 1" on leaves the number unchanged. A "transform identity" would be the value (or structure) which, when you apply a transform with it, would leave the coordinate/shape/image unchanged.
Joe, thanks for clearing that up for me! Man, I struggled with this trying to figure out why they used this term and now I finally know! I appreciate you taking the time to write up this explanation.
You are such an awesome tutor. No one can teach this much of clarity and explanation. especially explaining concepts using additional videos. thanks. Could you please provide tutorial for "OPERATION QUEUE" and "CORE DATA with RELATIONSHIP"?
At 27m40s, the reason the button always rotates clockwise is this: when CGTransform decides which way to rotate the image, it looks at which direction requires the least amount of rotation and turns that way. In _this_ case, however, the destination rotation is _exactly_ half of the circle, so it just defaults to clockwise. If you had made it even a _little_ less rotation to go back to 0 by going counter-clockwise (by specifying a rotation of, say, 179.9999 degrees), it would have gone that way. Likewise, if you had specified something even a smidge _more_ than 180 (like 180.0001), then the button would rotate counter-clockwise to get _to_ it and counter-clockwise to turn back to 0 from it.
Yes! I had found out the same thing later on. But again, I love that you take the time to comment because this helps others who watch and want to know as well. You have the best comments, Joe! I love this community! ❤️ ✊🏼
Hi Mark, thanks for another great tutorial. I would just like to point out one thing regarding the share buttons. In stead of giving them all an outlet. You could add them to an outlet collection. Than you could do something like this: shareButtons.forEach { $0.alpha = 0 } in stead of having to set the alpha values individually. Keep up the great work!
Great Tutorial... explained and implemented CGAffineTransform in very easy and understandable way. Appreciate if you can make a tutorial to show the flip/folding animation i.e. flip/folding a Uiview and open it like invitaion card. (like Ramotion have on Dribble) Looking forward to your tutorial. Thanks..!!
OK... last comment about this. When you set the constraints for Menu View to hang off the bottom of the main view, it looks like you just kinda eye-balled it. I was experimenting to see if there's a better way to do it, and I discovered that it's possible to make two constraints which will vertically center the Menu Toggle button. First, just set a constraint for a fixed spacing between the top of Menu Toggle and Menu View. Then, (here's the neat part) set a constraint for the same spacing between the bottom of the Menu Toggle button and the bottom of the main view. This pulls the button to a fixed point above the bottom and, then, pulls the Menu View to a fixed point above the button.
Yeah, that makes sense, so we have a vertical constraints going all the way up. I should open this project up and take a look at it again to see what I had done! 😃
Just curious about something... when you have an image inside a view (but extending outside the top of the view), and the view ‘clipsToBounds’, what size do you get for the image if you check it’s bounds? Do you get the clipped height, or the full height including the non-visible area?
Hey Mark, got any tips for rotation code that extended past 360 degrees? Think of the spinning top in the board game life. I'm trying to simulate that in my game.
Great video! How do you dismiss the whole menuview when we've clicked on a navigation bar button presenting another view controller? Because when i clicked on the navigation bar button, it doesn't dismiss away.
Hi, i really like your tutorials. I know Android has something called Materialize where they have alot of built in components and even sidemenu like google playerstore menu. Do iOS has anything like that? i know noticed you mentioned something about the Human interface guidelines. Can you please go through that HIG in your video?
Hi Mark, feel so sorry for what I am gonna do next that where can we download your source code, by the video I pretty much can master what U taught, but I really appreciate your interface design of your app.
Hey Aaron, I provide code through my Patreon page: www.patreon.com/bigmountainstudio. It is a reward to my supporters. I give them the Xcode project and any Sketch files for my projects as well as code to other projects I make but don't put on RUclips. I enjoy rewarding my supporters! I love sharing and teaching but the support from Patreon really helps me, especially justifying to my wife why I spend so much time working on these videos. 😃
if you want the button to go counter clockwise set the angle to 1 degree less ( for example: 179 instead of 180) then when you set .identity it will go counter clockwise back. it seems to want to take the shortest distant back to home position. Hope this helps out.
I watched a WWDC 2017 video and the speaker mentioned exactly this, that animations will take the shortest route with transforms. Then I thought of your comment about this. Good stuff!
Since you're using the same time for all the chained animations you should have made it a private let in the UIViewController so you only had to change it at one place.
great tutorials about animation. I have a question, can't we put menu button (that 4 social button ) on the bottom of menu, so when menu will go up it will come to visible area and when menu will hide all the button will move to outside the iphone screen ?.. is it a bad way?
Is there way to provide assets for your tutorials? Keep showing the programmatic way whenever your can for those who don't use IB. and I'm one of them.
Instead of "let alpha = CGFloat(fbbutton.alpha == 0 ? 1 : 0)", you should be able to toggle the value between 0 and 1 with "fbbutton.alpha = 1 - fbbutton.alpha".
Another great comment! I NEVER even thought of doing it this way! It makes sense. I think this is the first time I've even seen it done this way too. Eye opening.
I've looked at UIViewPropertyAnimator before and it fascinates me. I haven't found a good use of it yet that solves a UI/UX problem. If you have any suggestions or see a UI animation/mockup then please let me know. I'd be interested in exploring it more when I next get some free time.
Mark Moeykens check this out : twittemb.github.io/swift/animations/reactive%20programming/rxswift/2018/03/24/elegantly-chaining-uiviewpropertyanimators/?OS%2BDev%2BWeekly&OS%2BDev%2BWeekly%2BIssue%2B345
Did the way that you scale items to a smaller size change?? When I do-- self.object.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)-- it makes it that small and then animates back to the identity size...
That sounds right, Christiano. Using a value less than one will make it smaller. The size shouldn't change unless you set the object's transform property back to .identity.
@@bigmtnstudio Huh but I don't transform it back to identity. The only line of code I have is the one above and it automatically shifts it back to the original size.
there is no need to know the conversion between degrees/radians, you can do: var radians = CGFloat( Measurement(value: 180, unit: UnitAngle.degrees).converted(to: UnitAngle.radians).value) and you can "convert" many other such as unitVolum ( L->ml), Unitlength ( Km -> m ) and so on
Oh man, you're right! The only reason why it worked was because in this instance, the degrees happened to be 180. OK, thanks for the tip! I need to find a way to update this video. I think I might be able to use RUclips's editor.
Oh, hi Mark! Is it legal to use your custom icons for socials? Many documentations pays attention that the icons for their socials should be from the template which they gives in documentation
Very good tutorial, worked like a charm. However, I have a problem. Whenever I toggle the menu, the MenuView appears to cover the content on my ViewController. Any idea on how I can optimise the view to not cover a collectionView above the MenuView? Thank you.
I'm sorry maybe this is not close to the topic but, if I want to make a restaurant's app, how can I make the restaurants put their information in my platform so the users can go to their place? Is that another business? Do I have to call them offering my app?
Hi Mauricio, I'm not sure of the "correct way" or if there is one correct way to do this but thoughts off the top of my head are: * In your app, have a screen that says "Would you like to be listed?" and then provide a link to a website where they can enter their data and it gets saved to an online data store like Firestore or AWS or Azure cloud or something similar. * In your app, offer another separate app that restaurant owners can download to manage their restaurant settings that will update the online data store.
It seems that something goes wrong with the radians transition part, cause, no matter what number you put into that function, you always get the .pi, I think what you actually want is CGFloat(degrees * .pi / 180)
You're right, Aaron. Someone had pointed this out before too but it's buried in the comments now. I'll update this logic in the video description. Thanks for pointing it out!
could make a video filled circle with wave animation like laundry status fillUp (water fill in the circle with float value with wave animation ) Thanks
Mark Moeykens I mean to say I have a circle in showing some water like animation if value change then water fill by value and water going animation in the circle
Roshan, it sounds like toggleMenuButton is INSIDE the darkFillView. It should not. Look around 9:00 to see how they should be arranged in the document outline. They should both be on the same level inside the menuView.
Watch this video where I go over errors like that and see if it helps: ruclips.net/video/jxd_yqbh2iw/видео.html It's a short video. If that doesn't help, then look at the Identity Inspector for each of your controls on the Storyboard. See if there's an entry in the User Defined Runtime Attributes called "darkFillView" and delete it.
Hi Siddharth, when you scale a UIView, everything inside the UIView scales too. So in your animation you have a begin state and an end state. What I would do is setup everything to how you want your END STATE to look. Get everything positioned and sized correctly. Then when your view controller loads, set the begin state with a scaled down version and then animate it to the end state. This may sound confusing but I hope it makes sense.
It's actually controlled on the previous viewcontroller, the intro screen. I didn't want the navigation bar showing on the intro screen so I used this code: override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) navigationController?.setNavigationBarHidden(true, animated: false) } override func viewDidDisappear(_ animated: Bool) { super.viewDidDisappear(animated) navigationController?.setNavigationBarHidden(false, animated: animated) } Then when you leave the intro viewcontroller, viewDidDisappear gets run and it animates the showing of the navigation bar on the second view.
You're right, Yuri, it will always return pi as it is. There should be an annotation that pops up in the video that I had added later: ruclips.net/video/UfNdNrRHpUw/видео.htmlm45s I think if you're watching on a mobile device it might not show up. It says: "Note: You should actually divide by 180. It works here because degrees happens to be 180 too."
Mark Moeykens it means “you’re” a very strange man. your intros are the most mysterious things in the planet. i love them and thanks a lot for the videos. :)
Ohhhh, ha ha ha. You know, the intro on this video was my very first. My wife and I were in this little town that was having a film festival (Sundance Film Festival in Park City, Utah) and we saw the RUclips place across the street (behind me). And I told her, I should record an intro video and see if anyone notices the RUclips place behind me. And that become my very intro video. 😃From then on we just kept doing them for the fun of it.
How did you do the initial navigationbar animation when the new view is pushed? Great tutorial :)
Hi Andreas, good question!
It's actually controlled on the previous viewcontroller, the intro screen. I didn't want the navigation bar showing on the intro screen so I used this code:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.setNavigationBarHidden(true, animated: false)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
navigationController?.setNavigationBarHidden(false, animated: animated)
}
Then when you leave the intro viewcontroller, *viewDidDisappear* gets run and it animates the showing of the navigation bar on the second view.
Hope this helps!
Mark
Thanks Mark!
Thank you..!! Four days of not being able to animate a view and your tutorial solved it..!! Thanks, Mark, for these very accessible videos. You're a terrific teacher.
Wow that's awesome! Glad I could help! I have a lot of animation videos. One of my favorite subjects!
In a nutshell, your videos offer WAAAAY more than the title says. It is filled with useful tips and tricks , and that's why i love your videos. Keep it up man.
+Zaharia Nicolae, ha ha, thanks. :)
Mark , since last 2 years am in iOS dev . This is first time am commenting in any video. You just superb. Your explanation is so clear . :)
Well thank you, Suryanarayan! Thank you for your awesome feedback! :D
Actually, "identity" is probably the most-apropos term (in fact, it was the word that I expected to see you type before you even typed it). In mathematics, an "identity" value for an operation is something which doesn't change another value when you perform that operation with it. For example, 0 is the "additive identity" because any number you perform "+ 0" on leaves the number unchanged. Likewise, 1 is the "multiplicative identity" because anything you perform "* 1" on leaves the number unchanged. A "transform identity" would be the value (or structure) which, when you apply a transform with it, would leave the coordinate/shape/image unchanged.
Joe, thanks for clearing that up for me! Man, I struggled with this trying to figure out why they used this term and now I finally know! I appreciate you taking the time to write up this explanation.
Thanks brother
You're welcome!
Great tutorial Mark! This is the first explanation of why the underscore is in the function parameters! Your videos are brilliant! THANKS!
Thanks, Marcus. Sometimes I wonder if I explain too much but I'm glad you like it! 😄
One of the best iOS tutorial channels on RUclips. Thanks for your work!
Thank you! I appreciate you watching!
You are such an awesome tutor. No one can teach this much of clarity and explanation. especially explaining concepts using additional videos. thanks. Could you please provide tutorial for "OPERATION QUEUE" and "CORE DATA with RELATIONSHIP"?
Thanks for the kind words, Meera!
Great Work Mark Moeykens. Keep Posting the Custom UI Component
Mark makes animation look easy!
Yeah man, I love making things easy! It's like a game for me. Just how easy can I make it and teach it.
I love your tutorials Mark. Really fun and informative
Great explanation of 'CGAffineTransform'. Thank you.
You're welcome, Wei!
One of the best tutorials I've seen.
Hey thanks, Steven!
this is easy one of the most useful tutorials i've watched in a while Thank you!
You're welcome! I'm glad you liked it. :D
l
keep making those video, u r so talented
Thanks Jian, I appreciate the compliment!
The radians routine will only work on degrees of 180 because of the formula written as (degrees * .pi / degrees) instead of degrees * .pi / 180)
Ha ha, yeah, I had realized that later on. A few other good developers pointed that out to me too. 😃
Man this video is sick. I love it! Cant believe I've been procrastinating learning animations when it's that easy.
Oh I'm glad you like it. I have a few videos on animation.
At 27m40s, the reason the button always rotates clockwise is this: when CGTransform decides which way to rotate the image, it looks at which direction requires the least amount of rotation and turns that way. In _this_ case, however, the destination rotation is _exactly_ half of the circle, so it just defaults to clockwise. If you had made it even a _little_ less rotation to go back to 0 by going counter-clockwise (by specifying a rotation of, say, 179.9999 degrees), it would have gone that way. Likewise, if you had specified something even a smidge _more_ than 180 (like 180.0001), then the button would rotate counter-clockwise to get _to_ it and counter-clockwise to turn back to 0 from it.
Yes! I had found out the same thing later on. But again, I love that you take the time to comment because this helps others who watch and want to know as well. You have the best comments, Joe! I love this community! ❤️ ✊🏼
extra ordinary talent you have and all tutorials more powerful knowledge.. thanks a lot sir
Man You are a life savior. Your video helped me indirectly. :) Subscribed
Ha ha, that's awesome! Glad I can save lives. :D
Awesome tutorial! I know how hard it can be to keep uploading videos to youtube but, thanks for doing that!
Thanks, Felipe!
Hi Mark, thanks for another great tutorial. I would just like to point out one thing regarding the share buttons. In stead of giving them all an outlet. You could add them to an outlet collection. Than you could do something like this: shareButtons.forEach { $0.alpha = 0 } in stead of having to set the alpha values individually. Keep up the great work!
That is an excellent idea! Awesome tip, thanks!
Thank you so much for doing the animation series!
It's really amazing! I can't wait for the other videos :D
You are welcome, Albert!
You gained a new subscriber =) nice way to use views'transform. Thanks for the vid, hope to see many others!
Great Tutorial... explained and implemented CGAffineTransform in very easy and understandable way. Appreciate if you can make a tutorial to show the flip/folding animation i.e. flip/folding a Uiview and open it like invitaion card. (like Ramotion have on Dribble) Looking forward to your tutorial. Thanks..!!
Really helpful and very well explained! Thank u!!
+liliana martinez montiel, you are welcome!
Hello Mark ,
Can we show this demo with multiple images horizontally..
An other ultimate X tutorial!
Thank you!
OK... last comment about this. When you set the constraints for Menu View to hang off the bottom of the main view, it looks like you just kinda eye-balled it. I was experimenting to see if there's a better way to do it, and I discovered that it's possible to make two constraints which will vertically center the Menu Toggle button. First, just set a constraint for a fixed spacing between the top of Menu Toggle and Menu View. Then, (here's the neat part) set a constraint for the same spacing between the bottom of the Menu Toggle button and the bottom of the main view. This pulls the button to a fixed point above the bottom and, then, pulls the Menu View to a fixed point above the button.
Yeah, that makes sense, so we have a vertical constraints going all the way up. I should open this project up and take a look at it again to see what I had done! 😃
The animation of close the menu seems a little different from the demo one.
Everything is explained well. Thanks.
Just curious about something... when you have an image inside a view (but extending outside the top of the view), and the view ‘clipsToBounds’, what size do you get for the image if you check it’s bounds? Do you get the clipped height, or the full height including the non-visible area?
Hey Mark, got any tips for rotation code that extended past 360 degrees? Think of the spinning top in the board game life. I'm trying to simulate that in my game.
Loads of respect and love from India Mark.. thanks alot :)
You're welcome, Ankit!
Great video! How do you dismiss the whole menuview when we've clicked on a navigation bar button presenting another view controller? Because when i clicked on the navigation bar button, it doesn't dismiss away.
Hi, i really like your tutorials. I know Android has something called Materialize where they have alot of built in components and even sidemenu like google playerstore menu.
Do iOS has anything like that? i know noticed you mentioned something about the Human interface guidelines. Can you please go through that HIG in your video?
Hi Mark, feel so sorry for what I am gonna do next that where can we download your source code, by the video I pretty much can master what U taught, but I really appreciate your interface design of your app.
Hey Aaron, I provide code through my Patreon page: www.patreon.com/bigmountainstudio. It is a reward to my supporters. I give them the Xcode project and any Sketch files for my projects as well as code to other projects I make but don't put on RUclips. I enjoy rewarding my supporters!
I love sharing and teaching but the support from Patreon really helps me, especially justifying to my wife why I spend so much time working on these videos. 😃
yeah, so appreciate that, It's not about the money, I do like your work, Of cause I will visit the Petreon page to download the source code.
if you want the button to go counter clockwise set the angle to 1 degree less ( for example: 179 instead of 180) then when you set .identity it will go counter clockwise back. it seems to want to take the shortest distant back to home position. Hope this helps out.
+Peter Alexeichik, Whoah, very interesting. This is very good to know!
set angle to 270 and It will take the shortest route and go counter clockwise
I watched a WWDC 2017 video and the speaker mentioned exactly this, that animations will take the shortest route with transforms. Then I thought of your comment about this. Good stuff!
I came across that when I put 270 for the angle and then it went counter clockwise.
The formula for converting degrees to radians is (degrees * .pi / 180) .
Since you're using the same time for all the chained animations you should have made it a private let in the UIViewController so you only had to change it at one place.
Excellent tip, Stephen!
Very clear nice vid, thanks!
You're welcome!
Love your tutorials ! Thanks a lot Mark!
Thanks for watching!
Dope tutorial! 👍🏾👏🏾👏🏾👏🏾👏🏾
Thanks, Barney! Glad you liked the video!
My holly God
You are so amazing, great tutorial !!!!!!!!!!
Ha ha, thanks, Lucas! Really appreciate the comment!
great tutorials about animation. I have a question, can't we put menu button (that 4 social button ) on the bottom of menu, so when menu will go up it will come to visible area and when menu will hide all the button will move to outside the iphone screen ?.. is it a bad way?
That's totally OK! I could have had it that way. You have a lot of flexibility here. Take these tool to try and explore new things. :D
Is there way to provide assets for your tutorials? Keep showing the programmatic way whenever your can for those who don't use IB. and I'm one of them.
thank you so much for all these useful tutorials , you are amazing, Keep it up please :) .
Thank you, Xaled, I appreciate the kind words!
Instead of "let alpha = CGFloat(fbbutton.alpha == 0 ? 1 : 0)", you should be able to toggle the value between 0 and 1 with "fbbutton.alpha = 1 - fbbutton.alpha".
Another great comment! I NEVER even thought of doing it this way! It makes sense. I think this is the first time I've even seen it done this way too. Eye opening.
Amazing! Thank you man
You're welcome, Waleed!
In reference to the application. Did you say that there was a tutorial for the swipeable UIView? Also your videos are seriously Awesome!!!
Hi Jeremy, I actually started working on the swipeable UIView last night. Should be coming out soon. Stay tuned!
Amazing tutorial ! Thanks 👍
You're welcome, Mohamed ✌
Easily Digest ! Thank you Man
No problem, Fawad!
Another great tutorial!
+Gabriel Mesquita , thank you!
Damn this is good!!! Thanx man! Really useful. Just what i need in my project.
That's awesome, Stany. I hope your app turns out great!
Try UIViewPropertyAnimator instead for chain animation
I've looked at UIViewPropertyAnimator before and it fascinates me. I haven't found a good use of it yet that solves a UI/UX problem. If you have any suggestions or see a UI animation/mockup then please let me know. I'd be interested in exploring it more when I next get some free time.
Mark Moeykens check this out : twittemb.github.io/swift/animations/reactive%20programming/rxswift/2018/03/24/elegantly-chaining-uiviewpropertyanimators/?OS%2BDev%2BWeekly&OS%2BDev%2BWeekly%2BIssue%2B345
Did the way that you scale items to a smaller size change?? When I do-- self.object.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)-- it makes it that small and then animates back to the identity size...
That sounds right, Christiano. Using a value less than one will make it smaller. The size shouldn't change unless you set the object's transform property back to .identity.
@@bigmtnstudio Huh but I don't transform it back to identity. The only line of code I have is the one above and it automatically shifts it back to the original size.
so perfect, thank bro
You're welcome!
there is no need to know the conversion between degrees/radians, you can do:
var radians = CGFloat( Measurement(value: 180, unit: UnitAngle.degrees).converted(to: UnitAngle.radians).value)
and you can "convert" many other such as unitVolum ( L->ml), Unitlength ( Km -> m ) and so on
WHAT! José, where were you 2 years ago when I made this video? 😄 This is a fantastic tip! Thank you so much for sharing. I never even knew about this.
@@bigmtnstudio You are very welcome, I am new into swift's world and it fells great to be helpful. Thanks to you for answering my comment.
@@joseeuzcategui3863, yeah, no problem! I shared your tip with my coworkers and they too never knew about the Measurement object. Super helpful!
@@joseeuzcategui3863 I made a post too and mentioned you. 😃 www.patreon.com/posts/27073587
The formula for converting degrees to radians is actually radians = degrees * (pi/180)
Oh man, you're right! The only reason why it worked was because in this instance, the degrees happened to be 180. OK, thanks for the tip! I need to find a way to update this video. I think I might be able to use RUclips's editor.
OK, got it updated. Thanks, frmanns!
what tool do you use for your recordings Mark ?
I started out with just using Quicktime but then moved to Camtasia later on.
thanks mark for the information I really like your videos, they are very useful thanks :D
awesome thank you.
You're welcome, Ahmed! Thanks for watching!
Oh, hi Mark! Is it legal to use your custom icons for socials? Many documentations pays attention that the icons for their socials should be from the template which they gives in documentation
Thanks for the guide, seems very helpful, you are so talented!
Thank you, sir!
I'm not sure what you mean. You mean if I use like RUclips's logo in my app?
toooooo Excellent man !
hi sir can you add video which shows how to make card in rate food scene please and thankyou for these videos
Hello, can you please post this on github so don't have to ever see the video? Subscribbed!
Where did you get the up button, as well as all the other images ?
Hey, Nick. I created them using Sketch. The photos... I can't remember. I usually use pexels.com.
You should've put all the images in your github page, including the background images.
thanks thats really helpful, but how can I have button up and down images
Thanks, Ali. You can check out an example of up/down images in this video. It might help: ruclips.net/video/Mj2Hc6GU8Is/видео.html
Very good tutorial, worked like a charm. However, I have a problem. Whenever I toggle the menu, the MenuView appears to cover the content on my ViewController. Any idea on how I can optimise the view to not cover a collectionView above the MenuView? Thank you.
What would you like to happen instead? You want the menu to push the collectionView up?
Not push, rather always keep the spacing between the collectionView and MainView and make sure all the buttons in the MainView are accessible.
You are so cool, rly enjoy your videos)
thank you sir a lot for your great tutorials
You're welcome, Omar!
thanks for the tutorial
No problem, Vikas!
Very Cool 👍🏻👏🏻
Thanks! This is one of my favorite ways to do animations.
Very beautiful, thank you! 😊 👍
You're welcome!
How to inherit that class "UIViewX" ?? which resource file i need to download from internet.
Hi Sachin, expand the video description and you'll see a link in there to my github page where you can download it.
I'm sorry maybe this is not close to the topic but, if I want to make a restaurant's app, how can I make the restaurants put their information in my platform so the users can go to their place? Is that another business? Do I have to call them offering my app?
Hi Mauricio, I'm not sure of the "correct way" or if there is one correct way to do this but thoughts off the top of my head are:
* In your app, have a screen that says "Would you like to be listed?" and then provide a link to a website where they can enter their data and it gets saved to an online data store like Firestore or AWS or Azure cloud or something similar.
* In your app, offer another separate app that restaurant owners can download to manage their restaurant settings that will update the online data store.
Thank you so much man you the best
It seems that something goes wrong with the radians transition part, cause, no matter what number you put into that function, you always get the .pi, I think what you actually want is CGFloat(degrees * .pi / 180)
You're right, Aaron. Someone had pointed this out before too but it's buried in the comments now. I'll update this logic in the video description. Thanks for pointing it out!
I do benefit lots from your video lately, thank you for that.
+Aaron Xin, you're welcome! Hope you build some cool apps!
Wow Very Nice !!!
Thanks, Mohammad!
could make a video filled circle with wave animation like laundry status fillUp (water fill in the circle with float value with wave animation ) Thanks
Oh I know what you're talking about. I've seen it used on a web page before. I will have to look into it and see if I can figure it out.
Mark Moeykens so please provide us or make a tutorial if possible plz
Mark Moeykens I mean to say I have a circle in showing some water like animation if value change then water fill by value and water going animation in the circle
Where i get the UIViewX library for implementation.
Here you go:
github.com/bigmountainstudio/DesignableX
from where i get the library of
UIViewX
When darkFillView is scaled toggleMenuButton is expanding as well. I'd repeated the video 3 times but unable to find my mistake.
Roshan, it sounds like toggleMenuButton is INSIDE the darkFillView. It should not. Look around 9:00 to see how they should be arranged in the document outline. They should both be on the same level inside the menuView.
By holding command. :) Thank you mark.
You're welcome!
Good Work But Wher the Code Of Class ViewX Mark Moeykens
Here you go, Kam: github.com/bigmountainstudio/DesignableX
Watch this video where I go over errors like that and see if it helps: ruclips.net/video/jxd_yqbh2iw/видео.html
It's a short video. If that doesn't help, then look at the Identity Inspector for each of your controls on the Storyboard. See if there's an entry in the User Defined Runtime Attributes called "darkFillView" and delete it.
You are really awesome :)
the translationX is not working for me? For this what you have written the customize code?
Gaurav, you mean the code that moves the UIView up?
Awesome....
Thanks, Manjani!
Love It
Hello Mark this is Siddharth here. When I tried scaling the view, the button image also scaled up. How do I solve this problem
Hi Siddharth, when you scale a UIView, everything inside the UIView scales too. So in your animation you have a begin state and an end state. What I would do is setup everything to how you want your END STATE to look. Get everything positioned and sized correctly. Then when your view controller loads, set the begin state with a scaled down version and then animate it to the end state.
This may sound confusing but I hope it makes sense.
Mark Moeykens Thanks a lot
How do you make animated appearance of Navigation Bar?
It's actually controlled on the previous viewcontroller, the intro screen. I didn't want the navigation bar showing on the intro screen so I used this code:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.setNavigationBarHidden(true, animated: false)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
navigationController?.setNavigationBarHidden(false, animated: animated)
}
Then when you leave the intro viewcontroller, viewDidDisappear gets run and it animates the showing of the navigation bar on the second view.
Awesome , you 're so amazing ..
Thanks, Chien-Yu!
Where can I file Resources
UIViewX
Thank you
Right here, Alsharji: github.com/bigmountainstudio/DesignableX
i become fan of u bro...
Thanks, Katan!
r = deg * pi / 180
I think your radians function will always returns .pi
You're right, Yuri, it will always return pi as it is. There should be an annotation that pops up in the video that I had added later: ruclips.net/video/UfNdNrRHpUw/видео.htmlm45s
I think if you're watching on a mobile device it might not show up.
It says:
"Note: You should actually divide by 180. It works here because degrees happens to be 180 too."
mark bebeğim çok garip adamsın
I do a Google Translate and this comes out as: "mark baby i'm a very strange man"
Thanks for watching and I hope my videos helped!
Mark Moeykens it means “you’re” a very strange man. your intros are the most mysterious things in the planet. i love them and thanks a lot for the videos. :)
Ohhhh, ha ha ha. You know, the intro on this video was my very first. My wife and I were in this little town that was having a film festival (Sundance Film Festival in Park City, Utah) and we saw the RUclips place across the street (behind me). And I told her, I should record an intro video and see if anyone notices the RUclips place behind me. And that become my very intro video. 😃From then on we just kept doing them for the fun of it.