{"id":57,"date":"2016-09-18T21:15:00","date_gmt":"2016-09-18T21:15:00","guid":{"rendered":"https:\/\/seimith.io\/?p=57"},"modified":"2024-07-20T00:37:22","modified_gmt":"2024-07-20T00:37:22","slug":"swift-pulsating-uiview","status":"publish","type":"post","link":"https:\/\/seimith.io\/pt\/2016\/09\/18\/swift-pulsating-uiview\/","title":{"rendered":"(Swift) Pulsating UIView"},"content":{"rendered":"<p>This tutorial is very similar to my previous post about\u00a0<a href=\"http:\/\/seimith.github.io\/swift\/uiview\/views\/tutorial\/animation\/2016\/08\/28\/Swift-Rotating-UIView.html\">rotating UIViews<\/a>, but this is how to do pulsating animations. You might need this type of animation for a loader, an onTap of a button, or whatever.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/raw.githubusercontent.com\/seimith\/seimith.github.io\/master\/_assets\/2016-09-18-assets\/pulsatingUIView.gif\" alt=\"alt text\" title=\"Rotating UIViews\"\/><\/figure>\n\n\n\n<p><strong>Tools:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Swift 2.2<\/li>\n\n\n\n<li>Xcode Version 7.3.1<\/li>\n<\/ul>\n\n\n\n<p><strong>Step 1 to 4: Create swift project, set up your storyboard, add constraints, and connect your outlets<\/strong>&nbsp;The steps to set up this project this is pretty much the same as the&nbsp;<a href=\"http:\/\/seimith.github.io\/swift\/uiview\/views\/tutorial\/animation\/2016\/08\/28\/Swift-Rotating-UIView.html\">rotating UIViews<\/a>&nbsp;post, so check it out first. After that, you can just augment&nbsp;<strong>Step 5<\/strong>&nbsp;to make your UIView pulse.<\/p>\n\n\n\n<p><strong>Step 5: Add code to pulse<\/strong>&nbsp;In this example, we\u2019re adding animation to pulse a&nbsp;<code>UIView<\/code>&nbsp;once the app loads. To do that, we\u2019ll create a function, then call that function within the&nbsp;<code>viewDidLoad<\/code>&nbsp;lifecycle function.<\/p>\n\n\n\n<p>This is the function that contains the animation.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>func beginAnimation () {\n  \/\/ code for animation\n}<\/code><\/pre>\n\n\n\n<p>There are a couple of ways to animate your UIView to make it pulse. Below are 3 examples.<\/p>\n\n\n\n<p><strong>Version 1: Pulsate 3x<\/strong>&nbsp;I haven\u2019t used this technique to animate things in my personal projects so I don\u2019t have any strong opinions as to whether or not it\u2019s a better way to animate, but here it is\u2026<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let scaleAnimation:CABasicAnimation = CABasicAnimation(keyPath: \"transform.scale\")\nscaleAnimation.duration = 1.0\nscaleAnimation.repeatCount = 3.0\nscaleAnimation.autoreverses = true\nscaleAnimation.fromValue = 1.0;\nscaleAnimation.toValue = 1.2;\nself.uiViewToPulsate.layer.addAnimation(scaleAnimation, forKey: \"scale\")<\/code><\/pre>\n\n\n\n<p><strong>Version 2: To Pulse Forever<\/strong>&nbsp;This is how I\u2019ve learned to animate. I\u2019ve selected&nbsp;<code>.animateWithDuration<\/code>&nbsp;with&nbsp;<code>options<\/code>&nbsp;and this allows me to specify that I want my UIView to repeat and then reverse after the first loop by pluggin in an array.<\/p>\n\n\n\n<p>If I were to just pass&nbsp;<code>.Repeat<\/code>&nbsp;as the only thing in&nbsp;<code>options<\/code>, my UIView would keep on growing from its original size to&nbsp;<code>1.2<\/code>&nbsp;and then jarringly start over and over again.<\/p>\n\n\n\n<p>Adding&nbsp;<code>.Autoreverse<\/code>&nbsp;will perform the reverse of the animation and help make the transitions be smoother.<\/p>\n\n\n\n<p>The&nbsp;<code>completion<\/code>&nbsp;block is&nbsp;<code>nil<\/code>&nbsp;because I want my UIView to animate forever. Nobody would want their UIView to animate forever, but for this example why not?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>UIView.animateWithDuration(1.0, delay:0, options: &#91;.Repeat, .Autoreverse], animations: {\n    self.uiViewToPulsate.transform = CGAffineTransformMakeScale(1.2, 1.2)\n}, completion: nil)<\/code><\/pre>\n\n\n\n<p><strong>Version 3: Pulsate 3x<\/strong>&nbsp;This is similar to the code above except for the extra line&nbsp;<code>UIView.setAnimationRepeatCount(3)<\/code>&nbsp;and the lines in the completion block.<\/p>\n\n\n\n<p><code>UIView.setAnimationRepeatCount(3)<\/code>&nbsp;is what you\u2019d use to set the number of times you want you animation to run for.<\/p>\n\n\n\n<p>Then, the&nbsp;<code>completion<\/code>&nbsp;block is important to have to make the animation \u201creset\u201d to it\u2019s original size smoothly. If I were to have the block be&nbsp;<code>nil<\/code>&nbsp;like in the code above, after 3 animation rounds the UIView would stop abruptly at size 1.2x.<\/p>\n\n\n\n<p>Having&nbsp;<code>self.uiViewToPulsate.transform = CGAffineTransformMakeScale(1, 1)<\/code>&nbsp;within the&nbsp;<code>completion<\/code>&nbsp;block makes it such that once the animation is completed, the UIView will transition to it\u2019s original size at 1x.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>UIView.animateWithDuration(1.0, delay:0, options: &#91;.Repeat, .Autoreverse], animations: {\n    UIView.setAnimationRepeatCount(3)\n    self.uiViewToPulsate.transform = CGAffineTransformMakeScale(1.2, 1.2)\n\n    }, completion: {completion in\n        self.uiViewToPulsate.transform = CGAffineTransformMakeScale(1, 1)\n})<\/code><\/pre>\n\n\n\n<p>Add the code in your&nbsp;<code>viewDidLoad<\/code>&nbsp;to start the pulse<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.beginAnimation()<\/code><\/pre>\n\n\n\n<p>Your file should look similar to this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import UIKit\n\nclass ViewController: UIViewController {\n\n  \/\/ 1. We just added this IBOutlet\n  @IBOutlet weak var uiViewToPulsate: UIView!\n\n  override func viewDidLoad() {\n    super.viewDidLoad()\n\n    \/\/ 3. Starting animation when app loads\n    self.beginAnimation()\n  }\n\n  override func didReceiveMemoryWarning() {\n    super.didReceiveMemoryWarning()\n    \/\/ Dispose of any resources that can be recreated.\n  }\n\n  \/\/ 2. Function to pulse 3x\n  func beginAnimation () {\n      UIView.animateWithDuration(1.0, delay:0, options: &#91;.Repeat, .Autoreverse], animations: {\n          UIView.setAnimationRepeatCount(3)\n          self.uiViewToPulsate.transform = CGAffineTransformMakeScale(1.2, 1.2)\n          }, completion: {completion in\n              self.uiViewToPulsate.transform = CGAffineTransformMakeScale(1, 1)\n      })\n\n  }\n}<\/code><\/pre>\n\n\n\n<p>And that should be it. When you reload your simulator you should see a pulsating pink square!<\/p>\n\n\n\n<p><strong>You can get the storyboard project is in&nbsp;<a href=\"https:\/\/github.com\/seimith\/SwiftPulsatingUIView\">this repo<\/a>.<\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>This tutorial is very similar to my previous post about\u00a0rotating UIViews, but this is how to do pulsating animations. You might need this type of animation for a loader, an onTap of a button, or whatever. Tools: Step 1 to 4: Create swift project, set up your storyboard, add constraints, and connect your outlets&nbsp;The steps [&hellip;]<\/p>","protected":false},"author":1,"featured_media":288,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[20],"class_list":["post-57","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-post","tag-code"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>(Swift) Pulsating UIView - S(ei)mith.io<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/seimith.io\/pt\/2016\/09\/18\/swift-pulsating-uiview\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"(Swift) Pulsating UIView - S(ei)mith.io\" \/>\n<meta property=\"og:description\" content=\"This tutorial is very similar to my previous post about\u00a0rotating UIViews, but this is how to do pulsating animations. You might need this type of animation for a loader, an onTap of a button, or whatever. Tools: Step 1 to 4: Create swift project, set up your storyboard, add constraints, and connect your outlets&nbsp;The steps [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/seimith.io\/pt\/2016\/09\/18\/swift-pulsating-uiview\/\" \/>\n<meta property=\"og:site_name\" content=\"S(ei)mith.io\" \/>\n<meta property=\"article:published_time\" content=\"2016-09-18T21:15:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-20T00:37:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/seimith.io\/wp-content\/uploads\/2020\/12\/placeholder_image.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"700\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Smith\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Smith\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/\"},\"author\":{\"name\":\"Smith\",\"@id\":\"https:\\\/\\\/seimith.io\\\/#\\\/schema\\\/person\\\/315065130ef0017986daf9a1127ce80a\"},\"headline\":\"(Swift) Pulsating UIView\",\"datePublished\":\"2016-09-18T21:15:00+00:00\",\"dateModified\":\"2024-07-20T00:37:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/\"},\"wordCount\":496,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/seimith.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/placeholder_image.webp\",\"keywords\":[\"Code\"],\"articleSection\":[\"Post\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/\",\"url\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/\",\"name\":\"(Swift) Pulsating UIView - S(ei)mith.io\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/seimith.io\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/seimith.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/placeholder_image.webp\",\"datePublished\":\"2016-09-18T21:15:00+00:00\",\"dateModified\":\"2024-07-20T00:37:22+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/seimith.io\\\/#\\\/schema\\\/person\\\/315065130ef0017986daf9a1127ce80a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/#primaryimage\",\"url\":\"https:\\\/\\\/seimith.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/placeholder_image.webp\",\"contentUrl\":\"https:\\\/\\\/seimith.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/placeholder_image.webp\",\"width\":700,\"height\":700},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/seimith.io\\\/2016\\\/09\\\/18\\\/swift-pulsating-uiview\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/seimith.io\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"(Swift) Pulsating UIView\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/seimith.io\\\/#website\",\"url\":\"https:\\\/\\\/seimith.io\\\/\",\"name\":\"s(ei)mith.io\",\"description\":\"Ramblings written by\u00a0Smith Suth\u00a0who works at the intersection of Engineering, Product, and Design.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/seimith.io\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/seimith.io\\\/#\\\/schema\\\/person\\\/315065130ef0017986daf9a1127ce80a\",\"name\":\"Smith\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a403a51628e8e4553b69960e9eb8b67184121e56ddf2fdf28c5f9515bb518208?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a403a51628e8e4553b69960e9eb8b67184121e56ddf2fdf28c5f9515bb518208?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a403a51628e8e4553b69960e9eb8b67184121e56ddf2fdf28c5f9515bb518208?s=96&d=mm&r=g\",\"caption\":\"Smith\"},\"sameAs\":[\"https:\\\/\\\/seimith.io\"],\"url\":\"https:\\\/\\\/seimith.io\\\/pt\\\/author\\\/seimithsuth\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"(Swift) Pulsating UIView - S(ei)mith.io","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/seimith.io\/pt\/2016\/09\/18\/swift-pulsating-uiview\/","og_locale":"pt_BR","og_type":"article","og_title":"(Swift) Pulsating UIView - S(ei)mith.io","og_description":"This tutorial is very similar to my previous post about\u00a0rotating UIViews, but this is how to do pulsating animations. You might need this type of animation for a loader, an onTap of a button, or whatever. Tools: Step 1 to 4: Create swift project, set up your storyboard, add constraints, and connect your outlets&nbsp;The steps [&hellip;]","og_url":"https:\/\/seimith.io\/pt\/2016\/09\/18\/swift-pulsating-uiview\/","og_site_name":"S(ei)mith.io","article_published_time":"2016-09-18T21:15:00+00:00","article_modified_time":"2024-07-20T00:37:22+00:00","og_image":[{"width":700,"height":700,"url":"https:\/\/seimith.io\/wp-content\/uploads\/2020\/12\/placeholder_image.webp","type":"image\/webp"}],"author":"Smith","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Smith","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/#article","isPartOf":{"@id":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/"},"author":{"name":"Smith","@id":"https:\/\/seimith.io\/#\/schema\/person\/315065130ef0017986daf9a1127ce80a"},"headline":"(Swift) Pulsating UIView","datePublished":"2016-09-18T21:15:00+00:00","dateModified":"2024-07-20T00:37:22+00:00","mainEntityOfPage":{"@id":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/"},"wordCount":496,"commentCount":0,"image":{"@id":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/#primaryimage"},"thumbnailUrl":"https:\/\/seimith.io\/wp-content\/uploads\/2020\/12\/placeholder_image.webp","keywords":["Code"],"articleSection":["Post"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/","url":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/","name":"(Swift) Pulsating UIView - S(ei)mith.io","isPartOf":{"@id":"https:\/\/seimith.io\/#website"},"primaryImageOfPage":{"@id":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/#primaryimage"},"image":{"@id":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/#primaryimage"},"thumbnailUrl":"https:\/\/seimith.io\/wp-content\/uploads\/2020\/12\/placeholder_image.webp","datePublished":"2016-09-18T21:15:00+00:00","dateModified":"2024-07-20T00:37:22+00:00","author":{"@id":"https:\/\/seimith.io\/#\/schema\/person\/315065130ef0017986daf9a1127ce80a"},"breadcrumb":{"@id":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/#primaryimage","url":"https:\/\/seimith.io\/wp-content\/uploads\/2020\/12\/placeholder_image.webp","contentUrl":"https:\/\/seimith.io\/wp-content\/uploads\/2020\/12\/placeholder_image.webp","width":700,"height":700},{"@type":"BreadcrumbList","@id":"https:\/\/seimith.io\/2016\/09\/18\/swift-pulsating-uiview\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/seimith.io\/"},{"@type":"ListItem","position":2,"name":"(Swift) Pulsating UIView"}]},{"@type":"WebSite","@id":"https:\/\/seimith.io\/#website","url":"https:\/\/seimith.io\/","name":"s(ei)mith.io","description":"Ramblings written by\u00a0Smith Suth\u00a0who works at the intersection of Engineering, Product, and Design.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/seimith.io\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/seimith.io\/#\/schema\/person\/315065130ef0017986daf9a1127ce80a","name":"Smith","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/a403a51628e8e4553b69960e9eb8b67184121e56ddf2fdf28c5f9515bb518208?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a403a51628e8e4553b69960e9eb8b67184121e56ddf2fdf28c5f9515bb518208?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a403a51628e8e4553b69960e9eb8b67184121e56ddf2fdf28c5f9515bb518208?s=96&d=mm&r=g","caption":"Smith"},"sameAs":["https:\/\/seimith.io"],"url":"https:\/\/seimith.io\/pt\/author\/seimithsuth\/"}]}},"_links":{"self":[{"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/posts\/57","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/comments?post=57"}],"version-history":[{"count":2,"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/posts\/57\/revisions"}],"predecessor-version":[{"id":65,"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/posts\/57\/revisions\/65"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/media\/288"}],"wp:attachment":[{"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/media?parent=57"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/categories?post=57"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/seimith.io\/pt\/wp-json\/wp\/v2\/tags?post=57"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}