{"id":486139,"date":"2026-07-04T07:04:01","date_gmt":"2026-07-04T07:04:01","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=486139"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=486139","title":{"rendered":"UISlider \u0438\u0437\u043d\u0443\u0442\u0440\u0438: \u043f\u043e\u0447\u0435\u043c\u0443 `setValue` \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u043e \u0432\u0440\u0435\u043c\u044f settle-\u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0438 \u043a\u0430\u043a \u044f \u044d\u0442\u043e \u043e\u0431\u043e\u0448\u0435\u043b"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 iOS 26 \u0443 UISlider \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f liquid-glass-\u0432\u0438\u0434 \u0438 \u0444\u0438\u0437\u0438\u043a\u0430 \u0434\u043e\u0432\u043e\u0434\u043a\u0438 (settle) \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0430\u043b\u0435\u0446. \u0415\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u044f \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u0432 \u0441\u0442\u0430\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0438 \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u043e iOS 26 \u043d\u0438 \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u043d\u0438 \u0432 \u0442\u0435\u0445, \u0447\u0442\u043e \u044f \u043f\u0438\u0441\u0430\u043b \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435, \u044f \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u0435\u0433\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b. \u0423 \u0442\u0430\u043a\u043e\u0439 \u0434\u043e\u0432\u043e\u0434\u043a\u0438 \u0435\u0441\u0442\u044c \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442: \u0435\u0441\u043b\u0438 \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u0435\u0440\u043d\u0443\u0442\u044c <code>setValue(_:animated:)<\/code> \u0438\u0437\u0432\u043d\u0435, \u043d\u0430\u0448 \u0441\u043b\u0430\u0439\u0434\u0435\u0440 \u043d\u0430 \u043e\u0434\u0438\u043d \u043a\u0430\u0434\u0440 \u0435\u0434\u0435\u0442 \u0432 \u043d\u043e\u0432\u0443\u044e \u0442\u043e\u0447\u043a\u0443, \u0430 \u043f\u043e\u0442\u043e\u043c \u043e\u0442\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0443\u0434\u0430, \u043a\u0443\u0434\u0430 \u0435\u0433\u043e \u0442\u044f\u043d\u0435\u0442 settle. <code>removeAllAnimations()<\/code> \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442: \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0438\u0434\u0451\u0442 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 <code>CABasicAnimation<\/code>, \u0430 \u0447\u0435\u0440\u0435\u0437 property-driver \u043d\u0430 display link. \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u044f \u043d\u0430\u0448\u0451\u043b \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0443\u0442\u044c \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c.<\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0435 \u0432 \u044d\u0442\u043e\u043c \u0431\u0430\u0433\u0435 \u0431\u044b\u043b\u043e \u043d\u0435 \u0441\u0430\u043c\u043e \u0434\u0451\u0440\u0433\u0430\u043d\u044c\u0435, \u0430 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 API \u0433\u043e\u0432\u043e\u0440\u0438\u0442 &#171;\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e\u201d, \u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0434\u0440 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u201c\u043d\u0435\u0442, \u044f \u043b\u0443\u0447\u0448\u0435 \u0432\u0435\u0440\u043d\u0443\u0441\u044c \u043a\u0443\u0434\u0430 \u0445\u043e\u0442\u0435\u043b\u201d. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044e \u0434\u0432\u0430 \u043f\u0443\u0442\u0438: runtime-\u0444\u0438\u043a\u0441 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 \u0438 \u043f\u0440\u043e\u0434\u043e\u0432\u044b\u0439 \u043e\u0431\u0445\u043e\u0434 (\u0445\u043e\u0442\u044f \u0432 \u043b\u0438\u0447\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u044f \u043f\u043e\u0448\u0435\u043b \u0431\u044b \u0432 \u043f\u0440\u043e\u0434 \u0441 \u0444\u0438\u043a\u0441\u043e\u043c).<\/p>\n<h3>\u0421\u0438\u043c\u043f\u0442\u043e\u043c<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0441\u043b\u0430\u0439\u0434\u0435\u0440 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435. \u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u0434 \u0438\u043d\u043e\u0433\u0434\u0430 \u0437\u043e\u0432\u0451\u0442 \u0443 \u043d\u0435\u0433\u043e <code>setValue<\/code>, \u043f\u0440\u0438\u0447\u0451\u043c \u0440\u043e\u0432\u043d\u043e \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043e\u0442\u043f\u0443\u0441\u0442\u0438\u043b \u043f\u0430\u043b\u0435\u0446: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438\u0448\u043b\u043e \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 UI \u0438 \u0435\u0433\u043e \u043d\u0430\u0434\u043e \u043e\u0442\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u043b\u0437\u0443\u043d\u043a\u0435.<\/p>\n<p>\u041d\u0430 iOS 18 \u0438 \u043d\u0438\u0436\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0431\u0435\u0437 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e \u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0441\u043b\u0430\u0439\u0434\u0435\u0440. \u043d\u043e \u043d\u0430 iOS 26 \u043c\u044b \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0430. \u0412\u043e\u043e\u0431\u0449\u0435, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044f \u0438\u0437-\u0437\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0430 \u0438 \u0443\u0436\u0435 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c thumb \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0432\u0435\u0440\u0445 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u043d\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0442\u0430\u043a, \u043a\u0430\u043a \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b (\u043e\u043f\u044f\u0442\u044c \u0436\u0435, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u0432 iOS 26 \u043a\u043b\u0430\u0441\u0441\u0430 \u043b\u0438\u043d\u0437\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0434\u043e \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f). \u0412 \u0438\u0442\u043e\u0433\u0435 \u044f \u0432\u0441\u0451 \u0436\u0435 \u0440\u0435\u0448\u0438\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043b\u0430\u0439\u0434\u0435\u0440, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432, \u0431\u0440\u0430\u0442\u044c \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u0438\u043b\u0438 \u043d\u0435\u0442 \u0432 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435, \u2013 \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0443 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u043e\u0440\u044b\u0439 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2013 \u044f \u0441\u0442\u0430\u0432\u043b\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 0, \u0430 \u043f\u043e\u043b\u0437\u0443\u043d\u043e\u043a \u0435\u0434\u0435\u0442 \u0432 0 \u043d\u0430 \u043e\u0434\u0438\u043d \u043a\u0430\u0434\u0440 \u0438 \u0442\u0443\u0442 \u0436\u0435 \u043e\u0442\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043a \u0442\u043e\u0439 \u0442\u043e\u0447\u043a\u0435, \u043a\u0443\u0434\u0430 \u0435\u0433\u043e \u043d\u0435\u0441\u043b\u043e \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u043f\u0430\u043b\u044c\u0446\u0430.<\/p>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u044b\u043b\u0430 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u0430\u044f: \u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u0430\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u043d\u0430 \u0441\u043b\u043e\u0435.<\/p>\n<pre><code class=\"swift\">slider.setValue(0, animated: false)slider.layer.removeAllAnimations()<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u0432\u043e\u043e\u0431\u0449\u0435. \u041f\u043e\u043b\u0437\u0443\u043d\u043e\u043a \u043e\u0442\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a \u0436\u0435. \u0412\u043e\u0442 \u044d\u0442\u043e \u0438 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0432\u0430\u044f \u0437\u0430\u0446\u0435\u043f\u043a\u0430: \u0435\u0441\u043b\u0438 <code>removeAllAnimations()<\/code> \u043c\u043e\u043b\u0447\u0438\u0442, \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u043e\u0432\u043e\u0434\u043a\u0443 \u043a\u0440\u0443\u0442\u0438\u0442 \u043d\u0435 <code>CABasicAnimation<\/code>. \u0427\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u0447\u0438\u0442\u0430\u0435\u0442 \u0441\u0442\u0430\u0440\u044b\u0439 target \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u0438 \u0442\u044f\u043d\u0435\u0442 thumb \u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<h3>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0442\u0443\u043f\u043e\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0435<\/h3>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043b\u0435\u0437\u0442\u044c \u0432 runtime, \u044f \u0447\u0435\u0441\u0442\u043d\u043e \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0434\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430. \u041e\u0431\u0430 \u0447\u0438\u043d\u0438\u043b\u0438 \u0441\u0438\u043c\u043f\u0442\u043e\u043c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e.<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442: \u043e\u0442\u043b\u043e\u0436\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 <code>setValue<\/code> \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438. \u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043d\u0435 \u0442\u0430\u043a \u043a\u0440\u0430\u0441\u0438\u0432\u043e, \u043d\u043e \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u043d\u0438\u0447\u0435\u0433\u043e. \u041f\u0440\u0438\u0442\u043e\u043c \u044f \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 <code>endTracking<\/code>, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043c\u043e\u0433 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442: \u0447\u0435\u0440\u0435\u0437 <code>DispatchQueue.main.asyncAfter<\/code>. \u0414\u0451\u0440\u0433\u0430\u043d\u044c\u0435 \u0443\u0445\u043e\u0434\u0438\u0442, \u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439, \u0438 \u043f\u0440\u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0438\u0434\u0438\u0442 \u043b\u0430\u0433. \u041f\u043e\u043b\u0443\u043c\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043b\u0435\u0447\u0438\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u043d\u043e \u043d\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0443, \u0434\u0430 \u0435\u0449\u0451 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u043b\u043e\u0445\u043e.<\/p>\n<p>\u041e\u0431\u0430 \u043e\u0431\u0445\u043e\u0434\u0430 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u043b\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0443. \u041f\u043e\u0441\u043b\u0435 \u043d\u0438\u0445 \u044f \u0441\u0435\u043b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e iOS \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435 <code>endTracking<\/code>.<\/p>\n<h3>\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 settle \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 removeAllAnimations \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 <code>endTracking<\/code> UISlider \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0434\u043e\u0432\u043e\u0434\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 property-driver, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u043a display link. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u0438\u043a\u0435 \u0434\u0438\u0441\u043f\u043b\u0435\u044f driver \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 target \u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u0438\u0440\u0443\u0435\u0442 \u043a \u043d\u0435\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u043d\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 <code>CAAnimation<\/code> \u043d\u0430 \u0441\u043b\u043e\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 <code>removeAllAnimations()<\/code> \u0435\u0433\u043e \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 \u0438 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u0442.<\/p>\n<p>\u0421\u0445\u0435\u043c\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435:<\/p>\n<pre><code>display link tick   \u2514\u2500&gt; settle-driver \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u044d\u0448 target (\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 ivars)        \u2514\u2500&gt; \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u0438\u0440\u0443\u0435\u0442 presentationValue \u043a target             \u2514\u2500&gt; \u0434\u0432\u0438\u0433\u0430\u0435\u0442 thumb<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043c\u043e\u0442\u0440\u0435\u043b \u044f \u044d\u0442\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0447\u0435\u0440\u0435\u0437 <code>po<\/code> \u0438 <code>expr<\/code> \u0432 lldb \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0443 slider, \u0434\u0430\u043c\u043f subviews. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c\u0441\u044f \u0432\u0441\u043b\u0435\u043f\u0443\u044e, \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 ObjC-\u0445\u044d\u043b\u043f\u0435\u0440 <code>SafeKVC<\/code> \u0434\u043b\u044f \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438: \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u0434\u0430\u043c\u043f\u0438\u0442\u044c ivars \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u043b\u044e\u0431\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0438\u0445 \u0447\u0438\u0442\u0430\u0442\u044c\/\u043f\u0438\u0441\u0430\u0442\u044c. \u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438:<\/p>\n<pre><code>+ (NSArray&lt;NSString *&gt; *)ivarNamesOf:(id)object includeSuperclasses:(BOOL)inc;+ (NSArray&lt;NSString *&gt; *)methodNamesOf:(id)object includeSuperclasses:(BOOL)inc;+ (nullable id)valueForKey:(NSString *)key on:(id)object;   \/\/ @try\/@catch \u0432\u043e\u043a\u0440\u0443\u0433 KVC+ (nullable id)ivar:(NSString *)name on:(id)object;          \/\/ object_getIvar<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043b\u044e\u0441 \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 debug-\u0441\u0442\u0435\u043d\u0434: \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d \u0441 \u043e\u0434\u043d\u0438\u043c \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u043e\u043c \u0438 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0451\u0440\u0433\u0430\u044e\u0442 \u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u043e\u0434\u043d\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e ivar \u0437\u0430 \u0447\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442.<\/p>\n<h3>\u041a\u0430\u0440\u0442\u0430 internals<\/h3>\n<p>\u0412\u043e\u0442 \u0433\u0440\u0430\u0444 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0434\u0430\u043c\u043f\u0430. \u042d\u0442\u043e iOS 26 \u0441 liquid-glass-\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.<\/p>\n<pre><code>UISlider\u251c\u2500 _data: UISliderDataModel                        (KVC \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442)\u251c\u2500 _visualElement: _UISliderGlassVisualElement      (iOS 26 Liquid Glass)\u2502                : _UISliderFluidVisualElement       (\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c, iOS 26 Fluid)\u2502   \u251c\u2500 data:              UISliderDataModel                (KVC)\u2502   \u251c\u2500 lastUpdate:        _UIFluidSliderInteractionUpdate  (\u0442\u043e\u043b\u044c\u043a\u043e Ivar, KVC \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442)\u2502   \u251c\u2500 fluidInteraction:  _UIFluidSliderInteraction        (\u0442\u043e\u043b\u044c\u043a\u043e Ivar, KVC \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442)\u2502   \u251c\u2500 clipView \/ barView \/ trackView \/ tickViews \/ ...\u2502   \u251c\u2500 lensView:          _UIFluidGlassLensView            (\u0442\u043e\u043b\u044c\u043a\u043e iOS 26)\u2502   \u251c\u2500 thumbImageView, defaultThumbTintColor               (\u0442\u043e\u043b\u044c\u043a\u043e iOS 26)\u2502   \u251c\u2500 minimumThumbHitSize                                 (\u0442\u043e\u043b\u044c\u043a\u043e iOS 26)\u2502   \u2514\u2500 usingSliderStyling, paddingAroundImage, ...\u251c\u2500 _dummyViews\u251c\u2500 _sliderConfiguration: _UISliderConfiguration\u251c\u2500 _sliderStyle, _preferredBehavioralStyle\u2514\u2500 _visualElementFlags                              (\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>_UISliderGlassVisualElement<\/code> \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442 <code>_UISliderFluidVisualElement<\/code>. Glass-\u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0445 ivars (<code>lensView<\/code>, <code>thumbImageView<\/code>, <code>defaultThumbTintColor<\/code>, <code>minimumThumbHitSize<\/code>), \u0430 \u0432\u0441\u044f driver\/state-\u043c\u0430\u0448\u0438\u043d\u0430 (<code>data<\/code>, <code>lastUpdate<\/code>, <code>fluidInteraction<\/code>, <code>clipView<\/code> \u0438 \u043f\u0440\u043e\u0447\u0435\u0435) \u0436\u0438\u0432\u0451\u0442 \u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435 Fluid.<\/p>\n<h4>\u041f\u043e\u0447\u0435\u043c\u0443 KVC \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0441\u043b\u043e\u043c\u0430\u043d<\/h4>\n<p>KVC \u043d\u0430 visual element \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e. <code>valueForKey:<\/code> \u043a\u0438\u0434\u0430\u0435\u0442 <code>NSUnknownKeyException<\/code> \u0434\u043b\u044f <code>lastUpdate<\/code> \u0438 <code>fluidInteraction<\/code>, \u0445\u043e\u0442\u044f \u043e\u0431\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0435\u0441\u0442\u044c \u043a\u0430\u043a Ivar \u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435. \u0410 \u0434\u043b\u044f <code>data<\/code> KVC \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e.<\/p>\n<p>Type encodings \u0442\u0430\u043c \u0442\u043e\u0436\u0435 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0435: \u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 ivars <code>ivar_getTypeEncoding(...)<\/code> \u043e\u0442\u0434\u0430\u0451\u0442 \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 (\u0432 \u0434\u0430\u043c\u043f\u0430\u0445 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u043a\u0430\u043a <code>\": :\"<\/code>). \u041f\u043e\u0445\u043e\u0436\u0435, Apple \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430 \u0441\u043b\u043e\u0442 \u043f\u043e\u0434 Swift-managed property, \u043b\u0438\u0431\u043e \u0432\u044b\u0447\u0438\u0441\u0442\u0438\u043b\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u043a\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432. \u0421\u0430\u043c Ivar \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0447\u0435\u0440\u0435\u0437 runtime. \u0417\u043d\u0430\u0447\u0438\u0442 \u0434\u043e \u044d\u0442\u0438\u0445 \u043f\u043e\u043b\u0435\u0439 \u043b\u0435\u0437\u0435\u043c \u0447\u0435\u0440\u0435\u0437 <code>class_getInstanceVariable<\/code> + <code>object_getIvar<\/code> \/ <code>object_setIvar<\/code>, \u043c\u0438\u043d\u0443\u044f KVC.<\/p>\n<h4>\u0427\u0442\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435<\/h4>\n<p><code>UISliderDataModel<\/code> (<code>data<\/code>):<\/p>\n<pre><code>_value          : f   \/\/ float, \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0439 raw value_minValue       : f_maxValue       : f_minEnabledValue: f_maxEnabledValue: f_continuous, _enabled, _highlighted, _selected, _tracking : B<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>_value<\/code> \u0442\u0443\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 raw value \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0430, \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 KVC \u0441 <code>NSNumber(value: Float)<\/code>. \u042d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u043c\u0435\u043d\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0433\u0435\u0442\u0442\u0435\u0440 <code>UISlider.value<\/code> \u043e\u0442\u0434\u0430\u0451\u0442 \u043d\u0430\u0440\u0443\u0436\u0443 \u0441\u0442\u0430\u0440\u043e\u0435.<\/p>\n<p><code>_UIFluidSliderInteractionUpdate<\/code> (<code>lastUpdate<\/code>): \u0441\u043d\u0438\u043c\u043e\u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0430\u043f\u0434\u0435\u0439\u0442\u0430 \u043e\u0442 driver. Driver \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0430 <code>_atTarget<\/code>, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u043b\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<pre><code>_tracking          : B   \/\/ BOOL_atTarget          : B_value             : d   \/\/ double_interactionState  : q   \/\/ long long enum_type              : q__unclampedValue   : d   \/\/ \u0414\u0412\u0410 \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 (\u0442\u0430\u043a\u043e\u0435 \u0435\u0449\u0451 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u0436\u0435)_trackBounds       : {CGRect}_barFrame          : {CGRect}_trackTransform    : {CGAffineTransform}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>_UIFluidSliderInteraction<\/code> (<code>fluidInteraction<\/code>): \u0441\u0430\u043c\u0430 \u0441\u0442\u0435\u0439\u0442-\u043c\u0430\u0448\u0438\u043d\u0430 settle-\u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438.<\/p>\n<pre><code>_presentationValue        : d   \/\/ \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435_lockedValue              : d   \/\/ target, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 driver \u0442\u044f\u043d\u0435\u0442 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e_locked                   : B_directDrivingDelegate    : @\"&lt;_UIFluidSliderDirectDrivingDelegate&gt;\"  \/\/ \u2192 _UISliderGlassVisualElement_configuration            : @\"_UIFluidSliderInteractionConfiguration\"__drivers                 : @\"NSArray\"                  \/\/ [panDriver, volumeButtonDriver, ...]__activeDriver            : @\"&lt;_UIFluidSliderDriving&gt;\"   \/\/ nil \u0432 settled-\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438__panDriver               : @\"&lt;_UIFluidSliderDirectDriving&gt;\"  \/\/ _UIFluidSliderElasticPanDriver__volumeButtonDriver      : @\"&lt;_UIFluidSliderVolumeButtonDriving&gt;\"__animatedValue           : @\"UIViewFloatAnimatableProperty\"__state                   : q__normalizedTrackSize     : {CGSize}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>UIViewFloatAnimatableProperty<\/code> (<code>__animatedValue<\/code>): \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c\u0438 type encodings \u0438\u0437 \u0434\u0430\u043c\u043f\u0430.<\/p>\n<pre><code>\u043e\u0431\u044a\u0435\u043a\u0442            ObjC instance method      \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430------            ----------------------    ---------__animatedValue   setValue:                 v24@0:8d16   (void, double-\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442)__animatedValue   setVelocity:              v24@0:8d16   (void, double-\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442)__animatedValue   value                     d16@0:8      (double-\u0433\u0435\u0442\u0442\u0435\u0440)__animatedValue   presentationValue         d16@0:8__animatedValue   velocity                  d16@0:8<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>_UIFluidSliderElasticPanDriver<\/code> (<code>__panDriver<\/code>): \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0436\u0435\u0441\u0442\u0430 pan, \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b <code>cancel<\/code> \u0438 <code>stop<\/code>.<\/p>\n<pre><code>- (void)cancel;- (void)stop;- (BOOL)gestureRecognizerShouldBegin:(...)- (void)handleGesture:(...);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u044d\u0448: __animatedValue<\/h3>\n<p>\u0412\u043e\u0442 \u0442\u0443\u0442 \u0432\u0430\u0436\u043d\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u044c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0437\u0430\u0432\u0438\u0441 \u043d\u0430\u0434\u043e\u043b\u0433\u043e. \u0414\u0430\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u044f \u0441\u0431\u0440\u043e\u0441\u0438\u043b <code>data._value<\/code>, <code>lastUpdate<\/code>, <code>_lockedValue<\/code> \u0438 <code>_presentationValue<\/code>, slider \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c display tick \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u043e\u0431\u0440\u0430\u0442\u043d\u043e. Target \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0435\u0449\u0451 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0438 \u044d\u0442\u043e <code>__animatedValue<\/code> (<code>UIViewFloatAnimatableProperty<\/code>).<\/p>\n<p>\u042d\u0442\u043e \u043e\u0431\u0451\u0440\u0442\u043a\u0430 \u043d\u0430\u0434 spring-\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c. Backing-ivar \u0443 \u043d\u0435\u0451 <code>_animatableProperty<\/code>, \u0438 \u044d\u0442\u043e Swift-\u0442\u0438\u043f <code>UIKit.BridgedProperty<\/code>, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0447\u0435\u0440\u0435\u0437 ObjC runtime \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f. \u0417\u0430\u0442\u043e ObjC-\u043c\u0435\u0442\u043e\u0434 <code>setValue:<\/code> \u043d\u0430 \u0441\u0430\u043c\u043e\u0439 \u043e\u0431\u0451\u0440\u0442\u043a\u0435, \u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. \u0422\u0443\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u043e\u0431\u043d\u0443\u043b\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0438\u043d\u0430\u0447\u0435 spring \u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u0430\u0440\u044b\u0439 target \u0438 \u0442\u044f\u043d\u0435\u0442 thumb \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043a\u0430\u0434\u0440\u0435.<\/p>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u044e \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 IMP, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0442\u0443\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0439 <code>double<\/code> (<code>v24@0:8d16<\/code>), \u0430 \u043d\u0435 \u043e\u0431\u044a\u0435\u043a\u0442:<\/p>\n<pre><code>SEL setValueSel    = NSSelectorFromString(@\"setValue:\");SEL setVelocitySel = NSSelectorFromString(@\"setVelocity:\");((void(*)(id,SEL,double))[animated methodForSelector:setValueSel])(animated, setValueSel, target);((void(*)(id,SEL,double))[animated methodForSelector:setVelocitySel])(animated, setVelocitySel, 0);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u043c\u043e\u0451\u043c Swift-\u043a\u043e\u0434\u0435 \u044d\u0442\u043e \u0434\u0432\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 <code>SafeKVC<\/code>: <code>invoke(\"setValue:\", withDouble: target, on: animated)<\/code> \u0438 <code>invoke(\"setVelocity:\", withDouble: 0, on: animated)<\/code>.<\/p>\n<h3>\u0425\u0435\u043b\u043f\u0435\u0440: \u0437\u0430\u043f\u0438\u0441\u044c ivar \u043f\u043e offset \u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043d\u043e\u0439 \u043d\u0430 \u0442\u0438\u043f<\/h3>\n<p>\u0414\u043e <code>_lockedValue<\/code>, <code>_presentationValue<\/code>, <code>lastUpdate._value<\/code> \u0438 <code>__unclampedValue<\/code> \u0447\u0435\u0440\u0435\u0437 KVC \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f, \u0430 \u0435\u0449\u0451 \u0442\u0430\u043c \u0432\u0435\u0437\u0434\u0435 <code>double<\/code>, \u0438 KVC \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c float \u043f\u043e \u044d\u0442\u0438\u043c \u0441\u043b\u043e\u0442\u0430\u043c, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0438\u0445 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u043e offset, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u043b\u044f <code>SafeKVC<\/code> \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b:<\/p>\n<pre><code>+ (void)setValue:(nullable id)value forKey:(NSString *)key on:(id)object;     \/\/ KVC + @try\/@catch+ (void)setIvar:(nullable id)value forName:(NSString *)name on:(id)object;     \/\/ object_setIvar+ (void)setDoubleIvar:(double)value forName:(NSString *)name on:(id)object;    \/\/ \u0442\u043e\u043b\u044c\u043a\u043e enc == \"d\"+ (void)setBoolIvar:(BOOL)value forName:(NSString *)name on:(id)object;        \/\/ enc \"B\" \u0438\u043b\u0438 \"c\"+ (void)setLongIvar:(long long)value forName:(NSString *)name on:(id)object;   \/\/ enc \"q\"\/\"Q\"+ (void)invoke:(NSString *)selectorName withDouble:(double)arg on:(id)object;  \/\/ IMP-\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u0432\u0430\u0436\u043d\u0430\u044f \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u041f\u043e\u0438\u0441\u043a ivar \u0438\u0434\u0451\u0442 \u043f\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0435 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432\u0432\u0435\u0440\u0445 \u0434\u043e <code>NSObject<\/code> \u0447\u0435\u0440\u0435\u0437 <code>class_getInstanceVariable<\/code> + <code>class_getSuperclass<\/code>. \u0417\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 <code>ivar_getTypeEncoding<\/code>, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 encoding \u0441\u043e\u0432\u043f\u0430\u043b, \u043f\u0438\u0448\u0435\u0442 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443:<\/p>\n<pre><code>\/\/ \u0432\u043d\u0443\u0442\u0440\u0438 setDoubleIvar:forName:on: \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u0447\u0442\u043e encoding == \"d\"*(double *)((__bridge void *)object + ivar_getOffset(ivar)) = value;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u043e encoding \u0442\u0443\u0442 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430: \u0443 <code>UISliderDataModel._value<\/code> \u0442\u0438\u043f <code>f<\/code> (float), \u0430 \u0443 <code>lastUpdate._value<\/code> \u0438 <code>fluidInteraction._lockedValue<\/code> \u0442\u0438\u043f <code>d<\/code> (double). \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c double \u043f\u043e float-\u0441\u043b\u043e\u0442\u0443, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043c\u0443\u0441\u043e\u0440 \u0432 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0431\u0430\u0439\u0442\u0430\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e double \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0448\u044c \u0432\u0434\u0432\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0435\u0441\u0442\u0430. <code>setDoubleIvar:<\/code> \u043f\u0438\u0448\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 <code>ivar_getTypeEncoding == \"d\"<\/code>, \u0438\u043d\u0430\u0447\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e <code>setBoolIvar:<\/code> \u0438 <code>setLongIvar:<\/code> \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0441\u0432\u043e\u0438 encodings.<\/p>\n<p>\u0418 \u0432\u0441\u044f KVC\/invoke-\u0447\u0430\u0441\u0442\u044c \u043e\u0431\u0451\u0440\u043d\u0443\u0442\u0430 \u0432 <code>@try\/@catch (NSException *)<\/code>. <code>NSUnknownKeyException<\/code> \u0438 \u043f\u0440\u043e\u0447\u0435\u0435 \u043f\u0440\u043e\u0433\u043b\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043c\u0435\u0442\u043e\u0434 \u0442\u0438\u0445\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 no-op \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u0440\u0430\u0448\u0430. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0442\u0443\u0442 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u0441\u0438\u0442\u0443\u0446\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 API \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c, \u0430 \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438, \u043d\u043e \u0438 \u043a\u043e\u0434 \u043d\u0435 \u043f\u043e\u0448\u0435\u043b \u0431\u044b \u0432 \u043f\u0440\u043e\u0434, \u0440\u0438\u0441\u0435\u0440\u0447 \u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u0435\u043b\u0430\u043b \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0438 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c.<\/p>\n<h3>\u0418\u0442\u043e\u0433<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c <code>UIControl<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 <code>UISlider<\/code> (\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u044b\u043b\u0438 \u0435\u0449\u0451 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0430). \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 <code>setValue(_:animated:)<\/code> \u0443 \u043c\u043e\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u0434\u0435\u0440\u0433\u0430\u0435\u0442 <code>innerSlider.setValue(raw)<\/code>, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 <code>forceFluidInteractionState(to: raw)<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443. \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u0448\u0435\u0441\u0442\u0438 \u0448\u0430\u0433\u043e\u0432, \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0442\u0443\u0442 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u043d.<\/p>\n<pre><code>1. pan.cancel                         \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c momentum (\u0441\u0442\u0430\u0432\u0438\u0442 thumb \u0432 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0442\u0440\u0435\u043a\u0430)2. data._value = target               KVC + NSNumber, \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c raw value3. lastUpdate: _value, __unclampedValue = target;  _atTarget = true; _tracking = false4. fluid: _lockedValue, _presentationValue = target;  __activeDriver = nil;  __state = 05. __animatedValue.setValue:(target); __animatedValue.setVelocity:(0)   \u2190 \u041a\u041b\u042e\u0427\u0415\u0412\u041e\u0419 \u0428\u0410\u04136. innerSlider.setValue(target, animated: false) \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u0431\u043e\u0447\u043a\u0443 \u043e\u0442 \u0448\u0430\u0433\u0430 1 (thumb \u0443\u043b\u0435\u0442\u0435\u043b \u0432 0)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p><strong>\u0428\u0430\u0433 1, <\/strong><code><strong>pan.cancel<\/strong><\/code><strong> \u043f\u0435\u0440\u0432\u044b\u043c.<\/strong> \u0423 <code>cancel<\/code>, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0440\u0435\u0434\u0438 momentum-\u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u0435\u0441\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442: \u043e\u043d \u0441\u0442\u0430\u0432\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0430 \u0432 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0442\u0440\u0435\u043a\u0430 (\u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u0442\u0440\u0430\u043a\u0442\u0443\u0435\u0442 cancel \u043a\u0430\u043a \u00ab\u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c interactive change \u0438 \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443\u00bb). \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043d\u0430\u0434\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043d\u0430\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0451 \u043f\u043e\u0432\u0435\u0440\u0445 \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0448\u0430\u0433\u043e\u043c 6.<\/p>\n<p><strong>\u0428\u0430\u0433 2, <\/strong><code><strong>data._value<\/strong><\/code><strong>.<\/strong> \u0411\u0435\u0437 \u043d\u0435\u0433\u043e \u0433\u0435\u0442\u0442\u0435\u0440 <code>UISlider.value<\/code> \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430\u0440\u0443\u0436\u0443 \u0441\u0442\u0430\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e thumb \u0432\u0441\u0442\u0430\u043b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.<\/p>\n<p><strong>\u0428\u0430\u0433 3, <\/strong><code><strong>lastUpdate<\/strong><\/code><strong>.<\/strong> \u0411\u0435\u0437 <code>_atTarget = true<\/code> \u0438 \u0441\u0431\u0440\u043e\u0448\u0435\u043d\u043d\u043e\u0433\u043e <code>_tracking<\/code> driver \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u043f\u0440\u043e\u0448\u043b\u0443\u044e \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u043d\u0435\u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u043e\u0439 \u0438 \u0441\u043d\u043e\u0432\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 settle \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0442\u0438\u043a\u0435.<\/p>\n<p><strong>\u0428\u0430\u0433 4, <\/strong><code><strong>fluidInteraction<\/strong><\/code><strong>.<\/strong> <code>_lockedValue<\/code> \u044d\u0442\u043e target \u0434\u043e\u0432\u043e\u0434\u043a\u0438, <code>_presentationValue<\/code> \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043e\u0431\u0430 <code>double<\/code>, \u043f\u0438\u0448\u0443\u0442\u0441\u044f \u043f\u043e offset. <code>__activeDriver = nil<\/code> \u0433\u0430\u0441\u0438\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 settle-driver. <code>__state = 0<\/code> \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0435\u0439\u0442-\u043c\u0430\u0448\u0438\u043d\u0443.<\/p>\n<p><strong>\u0428\u0430\u0433 5, <\/strong><code><strong>__animatedValue<\/strong><\/code><strong>.<\/strong> \u0422\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0448\u0430\u0433. \u0411\u0435\u0437 \u043d\u0435\u0433\u043e \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e: spring \u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u0430\u0440\u044b\u0439 target \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 thumb \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043a\u0430\u0434\u0440\u0435.<\/p>\n<p><strong>\u0428\u0430\u0433 6, \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 <\/strong><code><strong>setValue<\/strong><\/code><strong>.<\/strong> \u041f\u0440\u043e\u0441\u0442\u043e \u0447\u0438\u0441\u0442\u0438\u0442 \u0437\u0430 \u0448\u0430\u0433\u043e\u043c 1: \u043f\u043e\u0441\u043b\u0435 <code>cancel<\/code> thumb \u043c\u043e\u0433 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0435 \u0442\u0440\u0435\u043a\u0430.<\/p>\n<h4>\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0448\u0430\u0433<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u0438\u043c\u043f\u0442\u043e\u043c<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>pan.cancel<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">Visual element \u043f\u0443\u0448\u0438\u0442 pre-cancel target \u0447\u0435\u0440\u0435\u0437 <code>_directDrivingDelegate<\/code> \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c layout.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>data._value<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0413\u0435\u0442\u0442\u0435\u0440 <code>UISlider.value<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0430\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0440\u0443\u0436\u0443.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>lastUpdate.*<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">Driver \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0435\u0449\u0451 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0430\u0441\u044c, \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0442\u0438\u043a\u0435 \u0441\u043d\u043e\u0432\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 settle.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>fluid._lockedValue<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">Settle-driver \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u0441\u0442\u0430\u0440\u0443\u044e \u0446\u0435\u043b\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>fluid.__activeDriver<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 settle \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u043e \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f display link.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>__animatedValue.setValue:<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u044d\u0448. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0441\u0431\u0440\u043e\u0448\u0435\u043d\u044b, animatable property \u0434\u0435\u0440\u0436\u0438\u0442 spring target \u0438 \u0442\u044f\u043d\u0435\u0442 slider \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043a\u0430\u0434\u0440\u0435.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 <code>setValue<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0431\u043e\u0447\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 <code>pan.cancel<\/code> \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 thumb \u043d\u0430 \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0435 \u0442\u0440\u0435\u043a\u0430.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0427\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0442\u0440\u043e\u0433\u0430\u0442\u044c<\/h4>\n<p><code>__panDriver<\/code>, <code>__drivers<\/code> \u0438 <code>__volumeButtonDriver<\/code> \u043e\u0431\u043d\u0443\u043b\u044f\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f. \u042d\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f\u0442 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u043f\u0430\u043b\u044c\u0446\u0430 \u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043e\u043a \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0430. \u0415\u0441\u043b\u0438 \u0438\u0445 \u0441\u043d\u0435\u0441\u0442\u0438, thumb \u0437\u0430\u043c\u0451\u0440\u0437\u043d\u0435\u0442 \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0436\u0435\u0441\u0442\u044b.<\/p>\n<p>\u0413\u0430\u0441\u0438\u0442\u044c \u043d\u0430\u0434\u043e \u0438\u043c\u0435\u043d\u043d\u043e <code>__activeDriver<\/code>, \u044d\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u0435\u0439\u0447\u0430\u0441 settle-driver. \u0421\u043b\u0430\u0439\u0434\u0435\u0440 \u043f\u0440\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0436\u0435\u0441\u0442\u0435 \u0434\u043e\u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 driver \u0438\u0437 <code>__drivers<\/code> \u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0435 \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f.<\/p>\n<h3>\u0427\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0443\u0448\u043b\u043e \u0432 \u043f\u0440\u043e\u0434<\/h3>\n<p>\u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0438\u0434\u0435\u044f: \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0431\u044a\u0435\u043a\u0442 <code>UISlider<\/code>, \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 settle-\u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u0447\u0435\u043c \u043c\u044b \u0438 \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f: \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043b\u0430\u0439\u0434\u0435\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c <code>setValue(_:animated:)<\/code> \u0437\u043e\u0432\u0451\u0442 <code>replaceInnerSlider(initialRawValue: raw)<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439:<\/p>\n<ul>\n<li>\n<p>\u0441\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0442\u0430\u0440\u044b\u0439 <code>innerSlider<\/code> \u0447\u0435\u0440\u0435\u0437 <code>removeFromSuperview()<\/code>,<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0447\u0435\u0440\u0435\u0437 \u0444\u0430\u0431\u0440\u0438\u043a\u0443 <code>makeInnerSlider()<\/code> (\u0447\u0438\u0441\u0442\u044b\u0439 <code>UISlider<\/code> \u0441 \u043d\u0443\u0436\u043d\u044b\u043c \u0441\u0442\u0438\u043b\u0435\u043c \u0442\u0440\u0435\u043a\u0430: <code>minimumTrackTintColor<\/code> \u0438 <code>maximumTrackTintColor<\/code> \u0432 <code>.clear<\/code>, <code>semanticContentAttribute = .forceLeftToRight<\/code>),<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442 <code>minimumValue<\/code> \/ <code>maximumValue<\/code>, \u0441\u0442\u0430\u0432\u0438\u0442 <code>value = initialRawValue<\/code>,<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043d\u043e\u0432\u043e \u0432\u0435\u0448\u0430\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u0438 target\/action \u0447\u0435\u0440\u0435\u0437 <code>installInnerSlider()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u043d\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0438\u043c\u0451\u043d ivars \u0438 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u043f\u0434\u0435\u0439\u0442\u044b iOS;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u0447\u0435\u043c\u0443 \u0434\u0435\u0433\u0440\u0430\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 no-op, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435\u0442 \u0440\u0435\u0432\u0435\u0440\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u0442\u0438\u0445\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0432\u0435\u0440\u043d\u0443\u043b \u0431\u0430\u0433;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0449\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a: \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 <code>setValue<\/code> \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0432\u044c\u044e: \u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e <code>UISlider<\/code>, \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u043e\u0432, \u0438 \u043f\u043e\u0442\u0435\u0440\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0436\u0435\u0441\u0442\u0430, \u0435\u0441\u043b\u0438 \u043f\u0430\u043b\u0435\u0446 \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430 \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0435. \u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u044d\u0442\u043e \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0439 <code>setValue<\/code> \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0430\u043b\u0435\u0446 \u0438\u043b\u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u043d \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<h3>\u0413\u0440\u0430\u0431\u043b\u0438 \u0438 \u0440\u0438\u0441\u043a\u0438<\/h3>\n<p>\u0420\u0438\u0441\u043a\u0438 \u0431\u044b\u043b\u0438 \u0443 \u043e\u0431\u043e\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0438 \u043e\u043d\u0438 \u0440\u0430\u0437\u043d\u044b\u0435.<\/p>\n<p>\u0423 ivar-\u043f\u0430\u0442\u0447\u0430:<\/p>\n<ul>\n<li>\n<p><strong>\u041f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 API.<\/strong> \u0418\u043c\u0435\u043d\u0430 ivars (<code>_lockedValue<\/code>, <code>__animatedValue<\/code>, <code>__activeDriver<\/code> \u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f) \u0438 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b (<code>setValue:<\/code>, <code>cancel<\/code>) \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f iOS.<\/p>\n<\/li>\n<li>\n<p><code><strong>SafeKVC<\/strong><\/code><strong> \u043f\u0440\u043e\u0433\u043b\u0430\u0442\u044b\u0432\u0430\u0435\u0442 <\/strong><code><strong>NSUnknownKeyException<\/strong><\/code><strong>.<\/strong> \u041d\u0430 \u043d\u043e\u0432\u043e\u0439 iOS, \u0433\u0434\u0435 \u0438\u043c\u044f ivar \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c, override \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0438\u043f\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443, \u043d\u043e \u0431\u0430\u0433 settle \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f, \u0438 \u044d\u0442\u043e \u043b\u0435\u0433\u043a\u043e \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p><strong>App Store review.<\/strong> \u0421\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b \u0437\u043e\u0432\u0443\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <code>NSSelectorFromString<\/code>, \u044d\u0442\u043e \u043b\u043e\u0432\u044f\u0442 \u0430\u0432\u0442\u043e\u0441\u043a\u0430\u043d\u0435\u0440\u044b Apple, \u0430 \u0440\u0443\u0447\u043d\u043e\u0439 \u0440\u0435\u0432\u044c\u044e \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0432\u044b\u0437\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u041e\u0434\u043d\u043e \u0438\u0437 \u043c\u043e\u0438\u0445 macOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0440\u0435\u0432\u044c\u044e \u0438\u0437-\u0437\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u043f\u0440\u0438\u0442\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u0434 iOS \u0431\u044b\u043b \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u044b \u0432 AppStore.<\/p>\n<\/li>\n<\/ul>\n<p>\u0423 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432 \u043f\u0440\u043e\u0434\u0435:<\/p>\n<ul>\n<li>\n<p><strong>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/strong> \u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 <code>setValue<\/code> \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 <code>UISlider<\/code> \u043f\u043b\u044e\u0441 reinstall \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u043e\u0432 \u2013 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u043e\u0442\u0435\u0440\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0436\u0435\u0441\u0442\u0430.<\/strong> \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043b\u0430\u0439\u0434\u0435\u0440, \u043f\u043e\u043a\u0430 \u043f\u0430\u043b\u0435\u0446 \u043d\u0430 \u043d\u0451\u043c, \u0436\u0435\u0441\u0442 \u043e\u0431\u043e\u0440\u0432\u0451\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u043c\u0435\u043d\u0430 \u043d\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f (\u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0442), \u0432\u0430\u043c \u044d\u0442\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442.<\/p>\n<\/li>\n<\/ul>\n<p><em>\u0421\u0441\u044b\u043b\u043a\u0438:<\/em><\/p>\n<ul>\n<li>\n<p>UISlider: <a href=\"https:\/\/developer.apple.com\/documentation\/uikit\/uislider\" rel=\"noopener noreferrer nofollow\">https:\/\/developer.apple.com\/documentation\/uikit\/uislider<\/a><\/p>\n<\/li>\n<li>\n<p>Objective-C Runtime (<code>class_getInstanceVariable<\/code> \/ <code>object_getIvar<\/code> \/ <code>object_setIvar<\/code> \/ <code>ivar_getOffset<\/code> \/ <code>ivar_getTypeEncoding<\/code>): <a href=\"https:\/\/developer.apple.com\/documentation\/objectivec\/objective-c_runtime\" rel=\"noopener noreferrer nofollow\">https:\/\/developer.apple.com\/documentation\/objectivec\/objective-c_runtime<\/a><\/p>\n<\/li>\n<li>\n<p>Type Encodings (\u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0438\u0434\u0430 <code>v24@0:8d16<\/code>): <a href=\"https:\/\/developer.apple.com\/library\/archive\/documentation\/Cocoa\/Conceptual\/ObjCRuntimeGuide\/Articles\/ocrtTypeEncodings.html\" rel=\"noopener noreferrer nofollow\">https:\/\/developer.apple.com\/library\/archive\/documentation\/Cocoa\/Conceptual\/ObjCRuntimeGuide\/Articles\/ocrtTypeEncodings.html<\/a><\/p>\n<\/li>\n<li>\n<p>WWDC25, \u00abBuild a UIKit app with the new design\u00bb (284): <a href=\"https:\/\/developer.apple.com\/videos\/play\/wwdc2025\/284\/\" rel=\"noopener noreferrer nofollow\">https:\/\/developer.apple.com\/videos\/play\/wwdc2025\/284\/<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1055466\/\">https:\/\/habr.com\/ru\/articles\/1055466\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 iOS 26 \u0443 UISlider \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f liquid-glass-\u0432\u0438\u0434 \u0438 \u0444\u0438\u0437\u0438\u043a\u0430 \u0434\u043e\u0432\u043e\u0434\u043a\u0438 (settle) \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0430\u043b\u0435\u0446. \u0415\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u044f \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u0432 \u0441\u0442\u0430\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0438 \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u043e iOS 26 \u043d\u0438 \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u043d\u0438 \u0432 \u0442\u0435\u0445, \u0447\u0442\u043e \u044f \u043f\u0438\u0441\u0430\u043b \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435, \u044f \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u0435\u0433\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b. \u0423 \u0442\u0430\u043a\u043e\u0439 \u0434\u043e\u0432\u043e\u0434\u043a\u0438 \u0435\u0441\u0442\u044c \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442: \u0435\u0441\u043b\u0438 \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u0435\u0440\u043d\u0443\u0442\u044c setValue(_:animated:) \u0438\u0437\u0432\u043d\u0435, \u043d\u0430\u0448 \u0441\u043b\u0430\u0439\u0434\u0435\u0440 \u043d\u0430 \u043e\u0434\u0438\u043d \u043a\u0430\u0434\u0440 \u0435\u0434\u0435\u0442 \u0432 \u043d\u043e\u0432\u0443\u044e \u0442\u043e\u0447\u043a\u0443, \u0430 \u043f\u043e\u0442\u043e\u043c \u043e\u0442\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0443\u0434\u0430, \u043a\u0443\u0434\u0430 \u0435\u0433\u043e \u0442\u044f\u043d\u0435\u0442 settle. removeAllAnimations() \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442: \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0438\u0434\u0451\u0442 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 CABasicAnimation, \u0430 \u0447\u0435\u0440\u0435\u0437 property-driver \u043d\u0430 display link. \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u044f \u043d\u0430\u0448\u0451\u043b \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0443\u0442\u044c \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c.\u0421\u0430\u043c\u043e\u0435 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0435 \u0432 \u044d\u0442\u043e\u043c \u0431\u0430\u0433\u0435 \u0431\u044b\u043b\u043e \u043d\u0435 \u0441\u0430\u043c\u043e \u0434\u0451\u0440\u0433\u0430\u043d\u044c\u0435, \u0430 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 API \u0433\u043e\u0432\u043e\u0440\u0438\u0442 &#171;\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e\u201d, \u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0434\u0440 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u201c\u043d\u0435\u0442, \u044f \u043b\u0443\u0447\u0448\u0435 \u0432\u0435\u0440\u043d\u0443\u0441\u044c \u043a\u0443\u0434\u0430 \u0445\u043e\u0442\u0435\u043b\u201d. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044e \u0434\u0432\u0430 \u043f\u0443\u0442\u0438: runtime-\u0444\u0438\u043a\u0441 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 \u0438 \u043f\u0440\u043e\u0434\u043e\u0432\u044b\u0439 \u043e\u0431\u0445\u043e\u0434 (\u0445\u043e\u0442\u044f \u0432 \u043b\u0438\u0447\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u044f \u043f\u043e\u0448\u0435\u043b \u0431\u044b \u0432 \u043f\u0440\u043e\u0434 \u0441 \u0444\u0438\u043a\u0441\u043e\u043c).\u0421\u0438\u043c\u043f\u0442\u043e\u043c\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0441\u043b\u0430\u0439\u0434\u0435\u0440 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435. \u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u0434 \u0438\u043d\u043e\u0433\u0434\u0430 \u0437\u043e\u0432\u0451\u0442 \u0443 \u043d\u0435\u0433\u043e setValue, \u043f\u0440\u0438\u0447\u0451\u043c \u0440\u043e\u0432\u043d\u043e \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043e\u0442\u043f\u0443\u0441\u0442\u0438\u043b \u043f\u0430\u043b\u0435\u0446: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438\u0448\u043b\u043e \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 UI \u0438 \u0435\u0433\u043e \u043d\u0430\u0434\u043e \u043e\u0442\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u043b\u0437\u0443\u043d\u043a\u0435.\u041d\u0430 iOS 18 \u0438 \u043d\u0438\u0436\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0431\u0435\u0437 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e \u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0441\u043b\u0430\u0439\u0434\u0435\u0440. \u043d\u043e \u043d\u0430 iOS 26 \u043c\u044b \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0430. \u0412\u043e\u043e\u0431\u0449\u0435, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044f \u0438\u0437-\u0437\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0430 \u0438 \u0443\u0436\u0435 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c thumb \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0432\u0435\u0440\u0445 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u043d\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0442\u0430\u043a, \u043a\u0430\u043a \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b (\u043e\u043f\u044f\u0442\u044c \u0436\u0435, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u0432 iOS 26 \u043a\u043b\u0430\u0441\u0441\u0430 \u043b\u0438\u043d\u0437\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0434\u043e \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f). \u0412 \u0438\u0442\u043e\u0433\u0435 \u044f \u0432\u0441\u0451 \u0436\u0435 \u0440\u0435\u0448\u0438\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043b\u0430\u0439\u0434\u0435\u0440, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432, \u0431\u0440\u0430\u0442\u044c \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u0438\u043b\u0438 \u043d\u0435\u0442 \u0432 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435, \u2013 \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0443 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u043e\u0440\u044b\u0439 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2013 \u044f \u0441\u0442\u0430\u0432\u043b\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 0, \u0430 \u043f\u043e\u043b\u0437\u0443\u043d\u043e\u043a \u0435\u0434\u0435\u0442 \u0432 0 \u043d\u0430 \u043e\u0434\u0438\u043d \u043a\u0430\u0434\u0440 \u0438 \u0442\u0443\u0442 \u0436\u0435 \u043e\u0442\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043a \u0442\u043e\u0439 \u0442\u043e\u0447\u043a\u0435, \u043a\u0443\u0434\u0430 \u0435\u0433\u043e \u043d\u0435\u0441\u043b\u043e \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u043f\u0430\u043b\u044c\u0446\u0430.\u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u044b\u043b\u0430 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u0430\u044f: \u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u0430\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u043d\u0430 \u0441\u043b\u043e\u0435.slider.setValue(0, animated: false)slider.layer.removeAllAnimations()\u041d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u0432\u043e\u043e\u0431\u0449\u0435. \u041f\u043e\u043b\u0437\u0443\u043d\u043e\u043a \u043e\u0442\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a \u0436\u0435. \u0412\u043e\u0442 \u044d\u0442\u043e \u0438 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0432\u0430\u044f \u0437\u0430\u0446\u0435\u043f\u043a\u0430: \u0435\u0441\u043b\u0438 removeAllAnimations() \u043c\u043e\u043b\u0447\u0438\u0442, \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u043e\u0432\u043e\u0434\u043a\u0443 \u043a\u0440\u0443\u0442\u0438\u0442 \u043d\u0435 CABasicAnimation. \u0427\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u0447\u0438\u0442\u0430\u0435\u0442 \u0441\u0442\u0430\u0440\u044b\u0439 target \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u0438 \u0442\u044f\u043d\u0435\u0442 thumb \u043e\u0431\u0440\u0430\u0442\u043d\u043e.\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0442\u0443\u043f\u043e\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0435\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043b\u0435\u0437\u0442\u044c \u0432 runtime, \u044f \u0447\u0435\u0441\u0442\u043d\u043e \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0434\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430. \u041e\u0431\u0430 \u0447\u0438\u043d\u0438\u043b\u0438 \u0441\u0438\u043c\u043f\u0442\u043e\u043c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e.\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442: \u043e\u0442\u043b\u043e\u0436\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 setValue \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438. \u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043d\u0435 \u0442\u0430\u043a \u043a\u0440\u0430\u0441\u0438\u0432\u043e, \u043d\u043e \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u043d\u0438\u0447\u0435\u0433\u043e. \u041f\u0440\u0438\u0442\u043e\u043c \u044f \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 endTracking, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043c\u043e\u0433 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442: \u0447\u0435\u0440\u0435\u0437 DispatchQueue.main.asyncAfter. \u0414\u0451\u0440\u0433\u0430\u043d\u044c\u0435 \u0443\u0445\u043e\u0434\u0438\u0442, \u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439, \u0438 \u043f\u0440\u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0438\u0434\u0438\u0442 \u043b\u0430\u0433. \u041f\u043e\u043b\u0443\u043c\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043b\u0435\u0447\u0438\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u043d\u043e \u043d\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0443, \u0434\u0430 \u0435\u0449\u0451 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u043b\u043e\u0445\u043e.\u041e\u0431\u0430 \u043e\u0431\u0445\u043e\u0434\u0430 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u043b\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0443. \u041f\u043e\u0441\u043b\u0435 \u043d\u0438\u0445 \u044f \u0441\u0435\u043b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e iOS \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435 endTracking.\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 settle \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 removeAllAnimations \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e\u041f\u043e\u0441\u043b\u0435 endTracking UISlider \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0434\u043e\u0432\u043e\u0434\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 property-driver, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u043a display link. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u0438\u043a\u0435 \u0434\u0438\u0441\u043f\u043b\u0435\u044f driver \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 target \u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u0438\u0440\u0443\u0435\u0442 \u043a \u043d\u0435\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u043d\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 CAAnimation \u043d\u0430 \u0441\u043b\u043e\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 removeAllAnimations() \u0435\u0433\u043e \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 \u0438 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u0442.\u0421\u0445\u0435\u043c\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435:display link tick   \u2514\u2500&gt; settle-driver \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u044d\u0448 target (\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 ivars)        \u2514\u2500&gt; \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u0438\u0440\u0443\u0435\u0442 presentationValue \u043a target             \u2514\u2500&gt; \u0434\u0432\u0438\u0433\u0430\u0435\u0442 thumb\u0421\u043c\u043e\u0442\u0440\u0435\u043b \u044f \u044d\u0442\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0447\u0435\u0440\u0435\u0437 po \u0438 expr \u0432 lldb \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0443 slider, \u0434\u0430\u043c\u043f subviews. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c\u0441\u044f \u0432\u0441\u043b\u0435\u043f\u0443\u044e, \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 ObjC-\u0445\u044d\u043b\u043f\u0435\u0440 SafeKVC \u0434\u043b\u044f \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438: \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u0434\u0430\u043c\u043f\u0438\u0442\u044c ivars \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u043b\u044e\u0431\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0438\u0445 \u0447\u0438\u0442\u0430\u0442\u044c\/\u043f\u0438\u0441\u0430\u0442\u044c. \u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438:+ (NSArray&lt;NSString *&gt; *)ivarNamesOf:(id)object includeSuperclasses:(BOOL)inc;+ (NSArray&lt;NSString *&gt; *)methodNamesOf:(id)object includeSuperclasses:(BOOL)inc;+ (nullable id)valueForKey:(NSString *)key on:(id)object;   \/\/ @try\/@catch \u0432\u043e\u043a\u0440\u0443\u0433 KVC+ (nullable id)ivar:(NSString *)name on:(id)object;          \/\/ object_getIvar\u041f\u043b\u044e\u0441 \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 debug-\u0441\u0442\u0435\u043d\u0434: \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d \u0441 \u043e\u0434\u043d\u0438\u043c \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u043e\u043c \u0438 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0451\u0440\u0433\u0430\u044e\u0442 \u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u043e\u0434\u043d\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e ivar \u0437\u0430 \u0447\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442.\u041a\u0430\u0440\u0442\u0430 internals\u0412\u043e\u0442 \u0433\u0440\u0430\u0444 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0434\u0430\u043c\u043f\u0430. \u042d\u0442\u043e iOS 26 \u0441 liquid-glass-\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.UISlider\u251c\u2500 _data: UISliderDataModel                        (KVC \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442)\u251c\u2500 _visualElement: _UISliderGlassVisualElement      (iOS 26 Liquid Glass)\u2502                : _UISliderFluidVisualElement       (\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c, iOS 26 Fluid)\u2502   \u251c\u2500 data:              UISliderDataModel                (KVC)\u2502   \u251c\u2500 lastUpdate:        _UIFluidSliderInteractionUpdate  (\u0442\u043e\u043b\u044c\u043a\u043e Ivar, KVC \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442)\u2502   \u251c\u2500 fluidInteraction:  _UIFluidSliderInteraction        (\u0442\u043e\u043b\u044c\u043a\u043e Ivar, KVC \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442)\u2502   \u251c\u2500 clipView \/ barView \/ trackView \/ tickViews \/ &#8230;\u2502   \u251c\u2500 lensView:          _UIFluidGlassLensView            (\u0442\u043e\u043b\u044c\u043a\u043e iOS 26)\u2502   \u251c\u2500 thumbImageView, defaultThumbTintColor               (\u0442\u043e\u043b\u044c\u043a\u043e iOS 26)\u2502   \u251c\u2500 minimumThumbHitSize                                 (\u0442\u043e\u043b\u044c\u043a\u043e iOS 26)\u2502   \u2514\u2500 usingSliderStyling, paddingAroundImage, &#8230;\u251c\u2500 _dummyViews\u251c\u2500 _sliderConfiguration: _UISliderConfiguration\u251c\u2500 _sliderStyle, _preferredBehavioralStyle\u2514\u2500 _visualElementFlags                              (\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435)_UISliderGlassVisualElement \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442 _UISliderFluidVisualElement. Glass-\u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0445 ivars (lensView, thumbImageView, defaultThumbTintColor, minimumThumbHitSize), \u0430 \u0432\u0441\u044f driver\/state-\u043c\u0430\u0448\u0438\u043d\u0430 (data, lastUpdate, fluidInteraction, clipView \u0438 \u043f\u0440\u043e\u0447\u0435\u0435) \u0436\u0438\u0432\u0451\u0442 \u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435 Fluid.\u041f\u043e\u0447\u0435\u043c\u0443 KVC \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0441\u043b\u043e\u043c\u0430\u043dKVC \u043d\u0430 visual element \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e. valueForKey: \u043a\u0438\u0434\u0430\u0435\u0442 NSUnknownKeyException \u0434\u043b\u044f lastUpdate \u0438 fluidInteraction, \u0445\u043e\u0442\u044f \u043e\u0431\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0435\u0441\u0442\u044c \u043a\u0430\u043a Ivar \u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435. \u0410 \u0434\u043b\u044f data KVC \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e.Type encodings \u0442\u0430\u043c \u0442\u043e\u0436\u0435 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0435: \u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 ivars ivar_getTypeEncoding(&#8230;) \u043e\u0442\u0434\u0430\u0451\u0442 \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 (\u0432 \u0434\u0430\u043c\u043f\u0430\u0445 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u043a\u0430\u043a &#171;: :&#187;). \u041f\u043e\u0445\u043e\u0436\u0435, Apple \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430 \u0441\u043b\u043e\u0442 \u043f\u043e\u0434 Swift-managed property, \u043b\u0438\u0431\u043e \u0432\u044b\u0447\u0438\u0441\u0442\u0438\u043b\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u043a\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432. \u0421\u0430\u043c Ivar \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0447\u0435\u0440\u0435\u0437 runtime. \u0417\u043d\u0430\u0447\u0438\u0442 \u0434\u043e \u044d\u0442\u0438\u0445 \u043f\u043e\u043b\u0435\u0439 \u043b\u0435\u0437\u0435\u043c \u0447\u0435\u0440\u0435\u0437 class_getInstanceVariable + object_getIvar \/ object_setIvar, \u043c\u0438\u043d\u0443\u044f KVC.\u0427\u0442\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435UISliderDataModel (data):_value          : f   \/\/ float, \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0439 raw value_minValue       : f_maxValue       : f_minEnabledValue: f_maxEnabledValue: f_continuous, _enabled, _highlighted, _selected, _tracking : B_value \u0442\u0443\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 raw value \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0430, \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 KVC \u0441 NSNumber(value: Float). \u042d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u043c\u0435\u043d\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0433\u0435\u0442\u0442\u0435\u0440 UISlider.value \u043e\u0442\u0434\u0430\u0451\u0442 \u043d\u0430\u0440\u0443\u0436\u0443 \u0441\u0442\u0430\u0440\u043e\u0435._UIFluidSliderInteractionUpdate (lastUpdate): \u0441\u043d\u0438\u043c\u043e\u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0430\u043f\u0434\u0435\u0439\u0442\u0430 \u043e\u0442 driver. Driver \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0430 _atTarget, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u043b\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u0434\u0430\u043b\u044c\u0448\u0435._tracking          : B   \/\/ BOOL_atTarget          : B_value             : d   \/\/ double_interactionState  : q   \/\/ long long enum_type              : q__unclampedValue   : d   \/\/ \u0414\u0412\u0410 \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 (\u0442\u0430\u043a\u043e\u0435 \u0435\u0449\u0451 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u0436\u0435)_trackBounds       : {CGRect}_barFrame          : {CGRect}_trackTransform    : {CGAffineTransform}_UIFluidSliderInteraction (fluidInteraction): \u0441\u0430\u043c\u0430 \u0441\u0442\u0435\u0439\u0442-\u043c\u0430\u0448\u0438\u043d\u0430 settle-\u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438._presentationValue        : d   \/\/ \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435_lockedValue              : d   \/\/ target, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 driver \u0442\u044f\u043d\u0435\u0442 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e_locked                   : B_directDrivingDelegate    : @&#187;&lt;_UIFluidSliderDirectDrivingDelegate&gt;&#187;  \/\/ \u2192 _UISliderGlassVisualElement_configuration            : @&#187;_UIFluidSliderInteractionConfiguration&#187;__drivers                 : @&#187;NSArray&#187;                  \/\/ [panDriver, volumeButtonDriver, &#8230;]__activeDriver            : @&#187;&lt;_UIFluidSliderDriving&gt;&#187;   \/\/ nil \u0432 settled-\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438__panDriver               : @&#187;&lt;_UIFluidSliderDirectDriving&gt;&#187;  \/\/ _UIFluidSliderElasticPanDriver__volumeButtonDriver      : @&#187;&lt;_UIFluidSliderVolumeButtonDriving&gt;&#187;__animatedValue           : @&#187;UIViewFloatAnimatableProperty&#187;__state                   : q__normalizedTrackSize     : {CGSize}UIViewFloatAnimatableProperty (__animatedValue): \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c\u0438 type encodings \u0438\u0437 \u0434\u0430\u043c\u043f\u0430.\u043e\u0431\u044a\u0435\u043a\u0442            ObjC instance method      \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430&#8212;&#8212;            &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-    &#8212;&#8212;&#8212;__animatedValue   setValue:                 v24@0:8d16   (void, double-\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442)__animatedValue   setVelocity:              v24@0:8d16   (void, double-\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442)__animatedValue   value                     d16@0:8      (double-\u0433\u0435\u0442\u0442\u0435\u0440)__animatedValue   presentationValue         d16@0:8__animatedValue   velocity                  d16@0:8_UIFluidSliderElasticPanDriver (__panDriver): \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0436\u0435\u0441\u0442\u0430 pan, \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b cancel \u0438 stop.- (void)cancel;- (void)stop;- (BOOL)gestureRecognizerShouldBegin:(&#8230;)- (void)handleGesture:(&#8230;);\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u044d\u0448: __animatedValue\u0412\u043e\u0442 \u0442\u0443\u0442 \u0432\u0430\u0436\u043d\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u044c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0437\u0430\u0432\u0438\u0441 \u043d\u0430\u0434\u043e\u043b\u0433\u043e. \u0414\u0430\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u044f \u0441\u0431\u0440\u043e\u0441\u0438\u043b data._value, lastUpdate, _lockedValue \u0438 _presentationValue, slider \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c display tick \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u043e\u0431\u0440\u0430\u0442\u043d\u043e. Target \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0435\u0449\u0451 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0438 \u044d\u0442\u043e __animatedValue (UIViewFloatAnimatableProperty).\u042d\u0442\u043e \u043e\u0431\u0451\u0440\u0442\u043a\u0430 \u043d\u0430\u0434 spring-\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c. Backing-ivar \u0443 \u043d\u0435\u0451 _animatableProperty, \u0438 \u044d\u0442\u043e Swift-\u0442\u0438\u043f UIKit.BridgedProperty, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0447\u0435\u0440\u0435\u0437 ObjC runtime \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f. \u0417\u0430\u0442\u043e ObjC-\u043c\u0435\u0442\u043e\u0434 setValue: \u043d\u0430 \u0441\u0430\u043c\u043e\u0439 \u043e\u0431\u0451\u0440\u0442\u043a\u0435, \u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. \u0422\u0443\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u043e\u0431\u043d\u0443\u043b\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0438\u043d\u0430\u0447\u0435 spring \u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u0430\u0440\u044b\u0439 target \u0438 \u0442\u044f\u043d\u0435\u0442 thumb \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043a\u0430\u0434\u0440\u0435.\u0412\u044b\u0437\u044b\u0432\u0430\u044e \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 IMP, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0442\u0443\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0439 double (v24@0:8d16), \u0430 \u043d\u0435 \u043e\u0431\u044a\u0435\u043a\u0442:SEL setValueSel    =&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-486139","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/486139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=486139"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/486139\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=486139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=486139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=486139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}