{"version":"https:\/\/jsonfeed.org\/version\/1","title":"Just Developer Blog, \u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u0441 \u0442\u0435\u0433\u043e\u043c: Xamarin","home_page_url":"http:\/\/bibobo.ru\/tags\/xamarin\/","feed_url":"http:\/\/bibobo.ru\/tags\/xamarin\/json\/","icon":false,"author":{"name":"\u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u0418\u0432\u043e\u043d (Evgeniy Ivon)","url":"http:\/\/bibobo.ru\/","avatar":false},"items":[{"id":"29","url":"http:\/\/bibobo.ru\/all\/ispolzovanie-qlpreviewcontroller-dlya-prosmotra-faylov-ios\/","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 QLPreviewController \u0434\u043b\u044f\u00a0\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 (iOS)","content_html":"<p>\u0414\u043b\u044f\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 (\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, word, excel, txt, \u043c\u0435\u0434\u0438\u0430 \u0438\u00a0\u0442.\u00a0\u043f.) \u0432\u00a0iOS \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 QLPreviewController. \u0414\u043b\u044f\u00a0\u0435\u0433\u043e \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p><\/br><\/p>\n<ol start=\"1\">\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441-\u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a QLPreviewController, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441 QLPreviewControllerDataSource, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u044b-\u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u0438 QLPreviewItem, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435<br \/>\n<input id=\"button_ios_qlpreview\" type=\"button\" onclick=\"toggle(cut_ios_qlpreview, button_ios_qlpreview)\" value=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\" hiddenText=\"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c\" visibleText=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\"><\/li>\n<\/ol>\n<div id=\"cut_ios_qlpreview\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<p>\u0411\u0435\u0437\u00a0\u043b\u0438\u0448\u043d\u0438\u0445 \u0441\u043b\u043e\u0432 \u0441\u0440\u0430\u0437\u0443 \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430\u00a0\u043a\u043e\u0434 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430<\/p>\n<p><\/br><\/p>\n<pre class=\"e2-text-code\"><code>\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b (\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0432\u043e\u0440\u0434, \u044d\u043a\u0437\u0435\u043b\u044c, \u043f\u0434\u0444 \u0438 \u0442.\u043f.) \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u0435\u0432\u044c\u044e\r\n\/\/\/ \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\r\n\/\/\/ &lt;\/summary&gt;\r\npublic class QuickLookPreviewController : QLPreviewController\r\n{\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a NSUrl'\u043e\u0432\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;returns&gt;&lt;c&gt;true&lt;\/c&gt;, if urls was previewed, &lt;c&gt;false&lt;\/c&gt; otherwise.&lt;\/returns&gt;\r\n    \/\/\/ &lt;param name=&quot;urls&quot;&gt;Urls.&lt;\/param&gt;\r\n    public bool PreviewUrls(params NSUrl[] urls)\r\n    {\r\n        List&lt;QLPreviewItem&gt; items = new List&lt;QLPreviewItem&gt;();\r\n        foreach (NSUrl url in urls)\r\n        {\r\n            QLPreviewItemNsUrl item = new QLPreviewItemNsUrl(url);\r\n            if (QLPreviewController.CanPreviewItem(item))\r\n            {\r\n                items.Add(item);\r\n            }\r\n        }\r\n\r\n        return PreviewItems(items.ToArray());\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a QLPreviewItem\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;returns&gt;&lt;c&gt;true&lt;\/c&gt;, if items was previewed, &lt;c&gt;false&lt;\/c&gt; otherwise.&lt;\/returns&gt;\r\n    \/\/\/ &lt;param name=&quot;items&quot;&gt;Items.&lt;\/param&gt;\r\n    public bool PreviewItems(params QLPreviewItem[] items)\r\n    {\r\n        if (items.Length &gt; 0)\r\n        {\r\n            DataSource = new PreviewControllerDataSource(items);\r\n            return true;\r\n        }\r\n\r\n        return false;\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ QL Preview \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445\r\n    \/\/\/ &lt;\/summary&gt;\r\n    private class PreviewControllerDataSource : QLPreviewControllerDataSource\r\n    {\r\n        private QLPreviewItem[] _items = new QLPreviewItem[0];\r\n\r\n        public PreviewControllerDataSource(params QLPreviewItem[] items)\r\n        {\r\n            _items = items;\r\n        }\r\n\r\n        public override nint PreviewItemCount(QLPreviewController controller)\r\n        {\r\n            return _items.Length;\r\n        }\r\n\r\n        public override IQLPreviewItem GetPreviewItem(QLPreviewController controller, nint index)\r\n        {\r\n            return _items[index];\r\n        }\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ QL Preview Item, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439 NSUrl\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public class QLPreviewItemNsUrl : QLPreviewItem\r\n    {\r\n        private NSUrl _documentUrl;\r\n\r\n        public QLPreviewItemNsUrl(NSUrl documentUrl)\r\n        {\r\n            _documentUrl = documentUrl;\r\n        }\r\n\r\n        public override string ItemTitle\r\n        {\r\n            get\r\n            {\r\n                return _documentUrl.LastPathComponent;\r\n            }\r\n        }\r\n        public override NSUrl ItemUrl\r\n        {\r\n            get\r\n            {\r\n                return _documentUrl;\r\n            }\r\n        }\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ QL Preview Item, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439 \u0438\u043c\u044f \u0438 \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public class QLPreviewItemFileSystem : QLPreviewItem\r\n    {\r\n        string _fileName, _filePath;\r\n\r\n        public QLPreviewItemFileSystem(string fileName, string filePath)\r\n        {\r\n            _fileName = fileName;\r\n            _filePath = filePath;\r\n        }\r\n\r\n        public override string ItemTitle\r\n        {\r\n            get\r\n            {\r\n                return _fileName;\r\n            }\r\n        }\r\n        public override NSUrl ItemUrl\r\n        {\r\n            get\r\n            {\r\n                return NSUrl.FromFilename(_filePath);\r\n            }\r\n        }\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ QL Preview Item, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439 \u0438\u043c\u044f \u0438\u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0438\u0437 \u0431\u0430\u043d\u0434\u043b\u0430\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public class QLPreviewItemBundle : QLPreviewItem\r\n    {\r\n        string _fileName, _filePath;\r\n        public QLPreviewItemBundle(string fileName, string filePath)\r\n        {\r\n            _fileName = fileName;\r\n            _filePath = filePath;\r\n        }\r\n\r\n        public override string ItemTitle\r\n        {\r\n            get\r\n            {\r\n                return _fileName;\r\n            }\r\n        }\r\n        public override NSUrl ItemUrl\r\n        {\r\n            get\r\n            {\r\n                var documents = NSBundle.MainBundle.BundlePath;\r\n                var lib = Path.Combine(documents, _filePath);\r\n                var url = NSUrl.FromFilename(lib);\r\n                return url;\r\n            }\r\n        }\r\n    }\r\n}<\/code><\/pre><p><\/br><\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><\/br><\/p>\n<pre class=\"e2-text-code\"><code>QuickLookPreviewController previewController = new QuickLookPreviewController();\r\nif (previewController.PreviewUrls(new NSUrl[]{ fileUrl }))\r\n{\r\n    this.NavigationController.PushViewController(previewController, true);\r\n}<\/code><\/pre><\/div>","date_published":"2016-01-13T22:10:14+03:00","date_modified":"2016-01-13T22:10:04+03:00","_date_published_rfc2822":"Wed, 13 Jan 2016 22:10:14 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/ispolzovanie-qlpreviewcontroller-dlya-prosmotra-faylov-ios\/","_e2_data":{"is_favourite":false,"links_required":["system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css","system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css"],"og_images":[]}},{"id":"28","url":"http:\/\/bibobo.ru\/all\/sozdanie-i-udalenie-zapisey-v-kalendare-ios\/","title":"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u00a0\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432\u00a0\u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435 (iOS)","content_html":"<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u0444\u0438\u0448\u043a\u0443 \u041e\u0421 \u043e\u0442\u00a0Apple \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438\u00a0\u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\u0439. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430-\u0445\u044d\u043b\u043f\u0435\u0440\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u00a0\u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0432\u00a0\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u043c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435.<\/p>\n<p><\/br><\/p>\n<p>\u0412\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u00a0\u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\u043c \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a EventKit, \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f:<\/p>\n<p><\/br><\/p>\n<ol start=\"1\">\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 EKEventStore<\/li>\n<li>\u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u00a0\u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u00a0\u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\u043c<\/li>\n<li>\u0412\u00a0completionHandler \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c<\/li>\n<li>\u041f\u0440\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0439\u0442\u0438 \u043d\u0430\u0448 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c EKCalendar (\u0438\u043b\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0433\u043e, \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u0435\u0449\u0435 \u043d\u0435\u0442)<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 EKEvent (\u044d\u0442\u043e \u0438\u00a0\u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0448\u0430 \u0437\u0430\u043f\u0438\u0441\u044c) \u0438\u00a0\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043b\u044f\u00a0\u043d\u0435\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442, \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u00a0\u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u00a0\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u043c\u0430\u0439\u043d\u0434\u0435\u0440 (\u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 EKAlarm), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043e\u00a0\u0437\u0430\u043f\u0438\u0441\u0438<br \/>\n<input id=\"button_ios_manage_calendar_events\" type=\"button\" onclick=\"toggle(cut_ios_manage_calendar_events, button_ios_manage_calendar_events)\" value=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\" hiddenText=\"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c\" visibleText=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\"><\/li>\n<\/ol>\n<div id=\"cut_ios_manage_calendar_events\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u043a\u043e\u0434:<\/p>\n<p><\/br><\/p>\n<pre class=\"e2-text-code\"><code>public class EventKitCalendarHelper\r\n{\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u0418\u043c\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public static string CalendarTitle = &quot;CalendarTitle&quot;;\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u0412\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public enum AlarmTime\r\n    {\r\n        None = 0,\r\n        FifteenMinutesBefore = -15*60,\r\n        HalfAnHourBefore = -30*60,\r\n        AnHourBefore = -60*60,\r\n        TwoHoursBefore = -2*60*60,\r\n        ThreeHoursBefore = -3*60*60\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=&quot;eventTitle&quot;&gt;Event title.&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=&quot;dateStart&quot;&gt;Date start.&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=&quot;timeLength&quot;&gt;Time length.&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=&quot;time&quot;&gt;Time.&lt;\/param&gt;\r\n    public static void AddCalendarEvent(string eventTitle, DateTime dateStart, TimeSpan timeLength, string eventNotes = &quot;&quot;, AlarmTime time = AlarmTime.None)\r\n    {\r\n        if (string.IsNullOrEmpty(eventTitle))\r\n        {\r\n            return;\r\n        }\r\n\r\n        EKEventStore store = new EKEventStore();\r\n        store.RequestAccess(EKEntityType.Event, (granted, err) =&gt;\r\n            {\r\n                if (!granted)\r\n                {\r\n                    return;\r\n                }\r\n\r\n                EKEvent entry = EKEvent.FromStore(store);\r\n                entry.Title = eventTitle;\r\n                entry.Notes = eventNotes;\r\n                entry.StartDate = dateStart.DateTimeToNSDate();\r\n                entry.EndDate = dateStart.Add(timeLength).DateTimeToNSDate();\r\n\r\n                \/\/\u0438\u0449\u0435\u043c \u043d\u0430\u0448 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043c - \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439\r\n                EKCalendar calendar = FindOrCreateCalendar(store, true);\r\n                if(calendar == null)\r\n                {\r\n                    return;\r\n                }\r\n\r\n                entry.Calendar = calendar;\r\n\r\n                \/\/\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0440\u0435\u043c\u0430\u0439\u043d\u0434\u0435\u0440, \u0435\u0441\u043b\u0438 \u043e\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f\r\n                if (time != AlarmTime.None)\r\n                {\r\n                    entry.AddAlarm(EKAlarm.FromTimeInterval((int)time));\r\n                }\r\n\r\n                err = null;\r\n                store.SaveEvent(entry, EKSpan.ThisEvent, out err);\r\n            });\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u041d\u0430\u0445\u043e\u0434\u0438\u0442 \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;returns&gt;The or create calendar.&lt;\/returns&gt;\r\n    \/\/\/ &lt;param name=&quot;store&quot;&gt;Store.&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=&quot;createIfDoesntExist&quot;&gt;If set to &lt;c&gt;true&lt;\/c&gt; create if doesnt exist.&lt;\/param&gt;\r\n    private static EKCalendar FindOrCreateCalendar(EKEventStore store, bool createIfDoesntExist = false)\r\n    {\r\n        NSError err = null;\r\n\r\n        EKCalendar calendar = store.Calendars.Where(x =&gt; x.Title == CalendarTitle).FirstOrDefault();\r\n        if (calendar == null &amp;&amp; createIfDoesntExist)\r\n        {\r\n            err = null;\r\n            calendar = EKCalendar.Create(EKEntityType.Event, store);\r\n            calendar.Title = CalendarTitle;\r\n\r\n            EKSource localSource = store.Sources.Where(x =&gt; x.SourceType == EKSourceType.Local).FirstOrDefault();\r\n            calendar.Source = localSource;\r\n\r\n            store.SaveCalendar(calendar, true, out err);\r\n        }\r\n\r\n        return calendar;\r\n    }\r\n}<\/code><\/pre><p><\/br><\/p>\n<p>\u0421\u00a0\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0434\u0435\u043b\u0430 \u043e\u0431\u0441\u0442\u043e\u044f\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435. \u041f\u0440\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0443\u00a0\u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 EventIdentifier, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0433\u0434\u0435-\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0434\u043b\u044f\u00a0\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0438. \u041b\u0438\u0431\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430 \u0438\u00a0\u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0445. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.<\/p>\n<p><\/br><\/p>\n<pre class=\"e2-text-code\"><code>\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438\r\n\/\/\/ &lt;\/summary&gt;\r\n\/\/\/ &lt;param name=&quot;dateStart&quot;&gt;Date start.&lt;\/param&gt;\r\n\/\/\/ &lt;param name=&quot;timeLength&quot;&gt;Time length.&lt;\/param&gt;\r\npublic static void RemoveCalendarEvent(DateTime dateStart, TimeSpan timeLength, string title = &quot;&quot;)\r\n{\r\n    EKEventStore store = new EKEventStore();\r\n    store.RequestAccess(EKEntityType.Event, (granted, err) =&gt;\r\n        {\r\n            if (!granted)\r\n            {\r\n                return;\r\n            }\r\n\r\n            \/\/\u0438\u0449\u0435\u043c \u043d\u0430\u0448 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c\r\n            EKCalendar calendar = FindOrCreateCalendar(store);\r\n            if (calendar == null)\r\n            {\r\n                return;\r\n            }\r\n\r\n            \/\/\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u044d\u0432\u0435\u043d\u0442\u043e\u0432 \u0432 \u043d\u0430\u0448\u0435\u043c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\r\n            NSPredicate predicate = store.PredicateForEvents(dateStart.DateTimeToNSDate(), dateStart.Add(timeLength).DateTimeToNSDate(), new EKCalendar[]{ calendar });\r\n            EKEvent[] entries = store.EventsMatching(predicate);\r\n\r\n            if (entries == null || entries.Length == 0)\r\n            {\r\n                return;\r\n            }\r\n\r\n            \/\/\u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e - \u043f\u0440\u043e\u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f \u043f\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0443\r\n            if (!string.IsNullOrEmpty(title))\r\n            {\r\n                entries = entries.Where(x =&gt; x.Title == title).ToArray();\r\n            }\r\n\r\n            if (entries == null || entries.Length == 0)\r\n            {\r\n                return;\r\n            }\r\n\r\n            \/\/\u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u043c \u044d\u0432\u0435\u043d\u0442\u0430\u043c \u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0438\u0445\r\n            foreach (EKEvent entry in entries)\r\n            {\r\n                err = null;\r\n                store.RemoveEvent(entry, EKSpan.ThisEvent, true, out err);\r\n            }\r\n        });\r\n}<\/code><\/pre>","date_published":"2016-01-06T18:38:03+03:00","date_modified":"2016-01-06T18:37:59+03:00","_date_published_rfc2822":"Wed, 06 Jan 2016 18:38:03 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/sozdanie-i-udalenie-zapisey-v-kalendare-ios\/","_e2_data":{"is_favourite":false,"links_required":["system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css","system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css"],"og_images":[]}},{"id":"27","url":"http:\/\/bibobo.ru\/all\/ispolzovanie-nsurlsession-dlya-zagruzki-faylov-ios\/","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 NSUrlSession \u0434\u043b\u044f\u00a0\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 (iOS)","content_html":"<p>\u041f\u0440\u0438\u00a0\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0444\u0430\u0439\u043b\u0430 \u043f\u043e\u00a0\u0441\u0435\u0442\u0438. \u041f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043d\u0430\u00a0Xamarin \u0432\u044b\u0441\u043e\u043a\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 WebClient \u0434\u043b\u044f\u00a0\u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439. \u0412\u0441\u0435\u00a0\u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e, \u043d\u043e\u00a0\u043f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 WebClient \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p><\/br><\/p>\n<ol start=\"1\">\n<li>\u041d\u0435\u00a0\u0432\u044b\u0441\u043e\u043a\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/li>\n<li>\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0438\u00a0\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u043b\u0438\u00a0\u0443\u0445\u043e\u0434\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u00a0\u0431\u0435\u043a\u0433\u0440\u0430\u0443\u043d\u0434<br \/>\n<\/br><\/li>\n<\/ol>\n<p>\u0414\u043b\u044f\u00a0\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0441\u00a0\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 NSUrlSession.<\/p>\n<p><input id=\"button_ios_download_file_in_background\" type=\"button\" onclick=\"toggle(cut_ios_download_file_in_background, button_ios_download_file_in_background)\" value=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\" hiddenText=\"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c\" visibleText=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\"><\/p>\n<div id=\"cut_ios_download_file_in_background\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<p>NSUrlSession\u00a0\u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c iOS, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u00a0\u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u00a0\u0441\u0435\u0442\u0438, \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0430\u043c\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0431\u0440\u044b\u0432\u044b \u0441\u0432\u044f\u0437\u0438, \u0434\u043e\u043a\u0430\u0447\u0430\u0435\u0442 \u0444\u0430\u0439\u043b, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u00a0\u0443\u0432\u0435\u0434\u043e\u043c\u0438\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u00a0\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c NSUrlSession \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p><\/br><\/p>\n<ol start=\"1\">\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441-\u0445\u044d\u043b\u043f\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0NSUrlSession<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441-\u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a NSUrlSessionDownloadDelegate, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u0434 \u043e\u00a0\u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430, \u0430\u00a0\u0442\u0430\u043a\u00a0\u0436\u0435 \u043e\u0431\u00a0\u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 NSUrlSession \u0438\u00a0\u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0435\u043c\u0443 \u0434\u0435\u043b\u0435\u0433\u0430\u0442<\/li>\n<li>\u0414\u043b\u044f\u00a0\u043a\u0430\u0436\u0434\u043e\u0433\u043e URL \u0444\u0430\u0439\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c NSUrlRequest \u0438\u00a0NSUrlSessionDownloadTask, \u0438\u00a0\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435<\/li>\n<li>\u0422\u0430\u043a\u00a0\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0437\u0430\u0431\u043e\u0442\u0438\u0442\u044c\u0441\u044f \u043e\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u00a0\u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u0442\u043e\u043c, \u043a\u0430\u043a\u043e\u043c\u0443 Url \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u0430\u043a\u043e\u0439 NSUrlSessionDownloadTask, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u043e\u043c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 \u043a\u043e\u0434\u0443 \u043e\u00a0\u0445\u043e\u0434\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f<br \/>\n<\/br><\/li>\n<\/ol>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043a\u043e\u0434 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438 \u043e\u00a0\u0434\u0435\u0442\u0430\u043b\u044f\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<pre class=\"e2-text-code\"><code>\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u041a\u043b\u0430\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u043c NSUrlSession \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435\r\n\/\/\/ &lt;\/summary&gt;\r\npublic class DownloadSession\r\n{\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u0435\u0441\u0441\u0438\u0438 (\u0441 \u0442\u0430\u043a\u0438\u043c ID \u0441\u0435\u0441\u0441\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438)\r\n    \/\/\/ &lt;\/summary&gt;\r\n    private static NSUrlSessionConfiguration _downloadConfiguration = NSUrlSessionConfiguration.BackgroundSessionConfiguration(&quot;com.appid.background.download&quot;);\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u041a\u043b\u0430\u0441\u0441-\u0434\u0435\u043b\u0435\u0433\u0430\u0442, \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044e \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043a\u043e\u0434\u0430 \u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442\u043e\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public sealed class ChatBackgroundSessionDelegate : NSUrlSessionDownloadDelegate\r\n    {\r\n        \/\/\/ &lt;summary&gt;\r\n        \/\/\/ \u0421\u043b\u043e\u0432\u0430\u0440\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 - \u0442\u0430\u0441\u043a \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 &lt;--&gt; url \u0444\u0430\u0439\u043b\u0430\r\n        \/\/\/ &lt;\/summary&gt;\r\n        public Dictionary&lt;NSUrlSessionDownloadTask, string&gt; QueueHolder { get; private set; }\r\n\r\n        public delegate void DownloadingCompleteDelegate(string url, NSUrl tempFileLocation);\r\n        public delegate void DownloadProgressDelegate(string url, int progressPercent);\r\n\r\n        \/\/\/ &lt;summary&gt;\r\n        \/\/\/ \u042d\u043a\u0448\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 (\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 url \u0444\u0430\u0439\u043b\u0430 \u0438 NSUrl \u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b)\r\n        \/\/\/ &lt;\/summary&gt;\r\n        public DownloadingCompleteDelegate CompleteAction { get{ return _completeAction; } set{ _completeAction = value; } }\r\n        private DownloadingCompleteDelegate _completeAction;\r\n\r\n        \/\/\/ &lt;summary&gt;\r\n        \/\/\/ \u042d\u043a\u0448\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 (\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0431\u0443\u0434\u0435\u0442 url \u0444\u0430\u0439\u043b\u0430 \u0438 \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f)\r\n        \/\/\/ &lt;\/summary&gt;\r\n        public DownloadProgressDelegate ProgressDelegate { get{ return _progressDelegate; } set{ _progressDelegate = value; } }\r\n        private DownloadProgressDelegate _progressDelegate;\r\n\r\n        \/\/\/ &lt;summary&gt;\r\n        \/\/\/ \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u043b\u043e\u0432\u0430\u0440\u044c-\u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u044d\u043a\u0448\u043d\u044b\r\n        \/\/\/ &lt;\/summary&gt;\r\n        public ChatBackgroundSessionDelegate(DownloadingCompleteDelegate downloadCompleteAction, DownloadProgressDelegate progressDelegate = null)\r\n        {\r\n            _completeAction = downloadCompleteAction;\r\n            _progressDelegate = progressDelegate;\r\n\r\n            QueueHolder = new Dictionary&lt;NSUrlSessionDownloadTask, string&gt;();\r\n        }\r\n\r\n        \/\/\/ &lt;summary&gt;\r\n        \/\/\/ \u041c\u0435\u0442\u043e\u0434, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\r\n        \/\/\/ &lt;\/summary&gt;\r\n        public override void DidWriteData (NSUrlSession session, NSUrlSessionDownloadTask downloadTask, long bytesWritten, long totalBytesWritten, long totalBytesExpectedToWrite)\r\n        {\r\n            if (_progressDelegate == null || !QueueHolder.ContainsKey(downloadTask))\r\n            {\r\n                return;\r\n            }\r\n\r\n            \/\/\u0435\u0441\u043b\u0438 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043d\u0430\u0439\u0434\u0435\u043d \u0442\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b \u0438 \u044d\u043a\u0448\u043d \u0431\u044b\u043b \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u0438\u0437\u0432\u043d\u0435 - \u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u044d\u043a\u0448\u043d \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430\r\n            InvokeOnMainThread(() =&gt;\r\n                {\r\n                    _progressDelegate.Invoke(QueueHolder[downloadTask], Convert.ToInt32(totalBytesWritten * 100 \/ totalBytesExpectedToWrite));\r\n                });\r\n        }\r\n\r\n        \/\/\/ &lt;summary&gt;\r\n        \/\/\/ \u041c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430\r\n        \/\/\/ &lt;\/summary&gt;\r\n        public override void DidFinishDownloading(NSUrlSession session, NSUrlSessionDownloadTask downloadTask, NSUrl location)\r\n        {\r\n            if (_completeAction == null || !QueueHolder.ContainsKey(downloadTask))\r\n            {\r\n                return;\r\n            }\r\n\r\n            InvokeOnMainThread(() =&gt;\r\n                {\r\n                    _completeAction.Invoke(QueueHolder[downloadTask], location);\r\n                });\r\n        }\r\n    }\r\n\r\n    private ChatBackgroundSessionDelegate _delegate;\r\n    private NSUrlSession _downloadSession;\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430-\u0445\u043e\u043b\u0434\u0435\u0440\u0430\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public DownloadSession(ChatBackgroundSessionDelegate.DownloadingCompleteDelegate downloadCompleteAction,\r\n        ChatBackgroundSessionDelegate.DownloadProgressDelegate progressDelegate = null)\r\n    {\r\n        \/\/\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0435\u043b\u0435\u0433\u0430\u0442\r\n        _delegate = new ChatBackgroundSessionDelegate(downloadCompleteAction, progressDelegate);\r\n\r\n        \/\/\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0435\u0441\u0441\u0438\u044e (\u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0435\u0441\u043b\u0438 \u0441\u0435\u0441\u0441\u0438\u044f \u0441 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 - \u0442\u043e \u043d\u043e\u0432\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0430 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u0441\u0442\u0430\u0440\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f)\r\n        _downloadSession = NSUrlSession.FromConfiguration(\r\n            _downloadConfiguration,\r\n            _delegate,\r\n            new NSOperationQueue());\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u0421\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=&quot;url&quot;&gt;URL.&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=&quot;file&quot;&gt;File.&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=&quot;message&quot;&gt;Message.&lt;\/param&gt;\r\n    public void StartDownload(string url)\r\n    {\r\n        if (string.IsNullOrEmpty(url))\r\n        {\r\n            return;\r\n        }\r\n\r\n        NSUrl nsurl = NSUrl.FromString(new NSString(url).CreateStringByAddingPercentEscapes(NSStringEncoding.UTF8));\r\n        NSUrlRequest request = NSUrlRequest.FromUrl(nsurl);\r\n        NSUrlSessionDownloadTask task = _downloadSession.CreateDownloadTask(request);\r\n\r\n        \/\/\u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u044e \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u0437\u044f\u044c \u0435\u0435 \u0434\u0435\u043b\u0435\u0433\u0430\u0442, \u043a\u0430\u0441\u0442\u0430\u043d\u0443\u0442\u044c \u0435\u0433\u043e \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u0438 \u0437\u0430\u0431\u0438\u043d\u0434\u0438\u0442\u044c \u0440\u0435\u043a\u0432\u0435\u0441\u0442\u044b\r\n        \/\/\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0430\u043a, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0435\u0441\u0441\u0438\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u0438 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f - \u043d\u043e\u0432\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f :)\r\n        \/\/\u044d\u043a\u0448\u043d\u044b \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438\u0437 \u043d\u043e\u0432\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u0432 \u0441\u0442\u0430\u0440\u044b\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u043d\u0438\u043a\u0430\u043a \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0435\u043b\u0435\u0433\u0430\u0442 (\u043e\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f)\r\n        if (_delegate != (ChatBackgroundSessionDelegate)_downloadSession.Delegate)\r\n        {\r\n            ChatBackgroundSessionDelegate newDelegate = (ChatBackgroundSessionDelegate)_downloadSession.Delegate;\r\n            newDelegate.CompleteAction = _delegate.CompleteAction;\r\n            newDelegate.ProgressDelegate = _delegate.ProgressDelegate;\r\n        }\r\n        _delegate = (ChatBackgroundSessionDelegate)_downloadSession.Delegate;\r\n\r\n        \/\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 Url \u0438 \u0442\u0430\u0441\u043a \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c\r\n        _delegate.QueueHolder.Add(task, url);\r\n\r\n        \/\/\u0441\u0442\u0430\u0440\u0442\u0443\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443\r\n        task.Resume();\r\n    }\r\n}<\/code><\/pre><p><\/br><\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0445\u043e\u0437\u044f\u0439\u0441\u0442\u0432\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre class=\"e2-text-code\"><code>\/\/\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0435\u0441\u0441\u0438\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445\r\nDownloadSession session = new DownloadSession((url, tempFileLocation) =&gt;\r\n    {\r\n        \/\/\u0435\u0441\u043b\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 - \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u0434\u0438\u0441\u043a\r\n        if (item.url == url)\r\n        {\r\n            \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n        }\r\n    }, (url, percent) =&gt;\r\n    {\r\n        if (item.url == url)\r\n        {\r\n            \/\/\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\r\n        }\r\n    });\r\n\r\n\/\/\u0441\u0442\u0430\u0440\u0442\u0443\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443\r\nsession.StartDownload(item.url);<\/code><\/pre><\/div>","date_published":"2016-01-03T10:53:01+03:00","date_modified":"2016-01-03T10:52:56+03:00","_date_published_rfc2822":"Sun, 03 Jan 2016 10:53:01 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/ispolzovanie-nsurlsession-dlya-zagruzki-faylov-ios\/","_e2_data":{"is_favourite":false,"links_required":["system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css","system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css"],"og_images":[]}},{"id":"26","url":"http:\/\/bibobo.ru\/all\/realizaciya-uvedomleniy-indikatorov-dlya-zagruzhaemyh-na-server\/","title":"\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439-\u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0434\u043b\u044f\u00a0\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u043d\u0430\u00a0\u0441\u0435\u0440\u0432\u0435\u0440 \u0444\u0430\u0439\u043b\u043e\u0432 (Android)","content_html":"<p>\u041f\u0440\u0438\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u00a0\u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u0437\u00a0\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0441\u0442\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e\u0431\u00a0\u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0415\u0441\u043b\u0438 \u0434\u0438\u0437\u0430\u0439\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0434\u0438\u0430\u043b\u043e\u0433 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0431\u0430\u0440\u0430 (\u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f). \u041d\u043e\u00a0\u043d\u0430\u00a0\u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0432\u00a0\u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0430\u0440\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u043c\u0430\u0445\u043d\u0443\u0442\u044c.<\/p>\n<p><\/br><\/p>\n<p>\u041f\u0440\u0438\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c:<\/p>\n<p><\/br><\/p>\n<ol start=\"1\">\n<li>\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u0434\u043b\u044f\u00a0\u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 (\u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0435\u0434\u0438\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432)<\/li>\n<li>\u041a\u0430\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430\u00a0\u0441\u0435\u0440\u0432\u0435\u0440<br \/>\n<input id=\"button_android_download_file_notification\" type=\"button\" onclick=\"toggle(cut_android_download_file_notification, button_android_download_file_notification)\" value=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\" hiddenText=\"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c\" visibleText=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\"><\/li>\n<\/ol>\n<div id=\"cut_android_download_file_notification\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<p>\u0414\u043b\u044f\u00a0\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u043d\u0430\u0442\u044c \u043a\u0430\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u041a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043a\u043e\u043b\u044c \u0443\u0433\u043e\u0434\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439, \u043d\u043e\u00a0\u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435, \u043b\u0438\u0431\u043e \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e\u00a0\u2014 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437\u00a0\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0441\u0432\u043e\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 ID. \u041d\u0438\u0436\u0435 \u043a\u043e\u0434 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u00a0\u0441\u0442\u0430\u0440\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u00a0\u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u00a0\u0435\u0433\u043e \u043e\u0442\u043c\u0435\u043d\u044b, \u043f\u043e\u00a0\u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438:<\/p>\n<p><\/br><\/p>\n<pre class=\"e2-text-code\"><code>\/\/\u041a\u0435\u0448, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a id \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439\r\nprivate List&lt;int&gt; _notificationCache = new List&lt;int&gt;();\r\n\r\nprivate void UploadFile()\r\n{\r\n    \/\/\u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0439 ID \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0442\u044c\u0441\u044f \u0441 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 (\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u0435\u0448)\r\n    Random r = new Random(System.Environment.TickCount);\r\n    int notificationId = 0;\r\n    while (notificationId == 0 || _notificationCache.Contains(notificationId))\r\n    {\r\n        notificationId = r.Next(1, 1000);\r\n    }\r\n    _notificationCache.Add(notificationId);\r\n    \/\/\r\n                \r\n    Notification.Builder builder = new Notification.Builder(Activity);\r\n    builder.SetSmallIcon(Resource.Drawable.file_32x32)\r\n        \/\/\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\r\n        .SetContentTitle(filename)\r\n        \/\/\u0432 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0448\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u0448\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 &quot;\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u044e \u0444\u0430\u0439\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440...&quot;\r\n        .SetContentText(Activity.GetString(Resource.String.attachement_uploading))\r\n        .SetAutoCancel(false)\r\n        \/\/\u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u043e\u0442\u043c\u0435\u043d\u0443 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c\r\n        .SetOngoing(true)\r\n        \/\/\u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044e \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0430\u0440\u0435, \u043c\u0438\u0433\u0430\u0442\u044c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c \u0438 \u0442.\u043f.\r\n        .SetDefaults(NotificationDefaults.All);\r\n\r\n    NotificationManager manager = (NotificationManager)Activity.GetSystemService(Activity.NotificationService);\r\n    manager.Notify(notificationId, builder.Build());\r\n\r\n    \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n    \/\/ ... \u043a\u043e\u0434 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 ... \/\/\r\n    \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n\r\n    \/\/\u043e\u0442\u043c\u0435\u043d\u044f\u0435\u043c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0435\u0433\u043e ID \u0438\u0437 \u043a\u0435\u0448\u0430\r\n    manager.Cancel(notificationId);\r\n    _notificationCache.Remove(notificationId);\r\n}<\/code><\/pre><\/div>","date_published":"2015-12-20T12:53:09+03:00","date_modified":"2015-12-20T12:52:49+03:00","_date_published_rfc2822":"Sun, 20 Dec 2015 12:53:09 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/realizaciya-uvedomleniy-indikatorov-dlya-zagruzhaemyh-na-server\/","_e2_data":{"is_favourite":false,"links_required":["system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css"],"og_images":[]}},{"id":"25","url":"http:\/\/bibobo.ru\/all\/ispolzovanie-downloadmanager-dlya-skachivaniya-faylov-iz-seti-an\/","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 DownloadManager \u0434\u043b\u044f\u00a0\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0437\u00a0\u0441\u0435\u0442\u0438 (Android)","content_html":"<p>\u0412\u00a0\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043e\u00a0\u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0438\u0437\u00a0\u0441\u0435\u0442\u0438 \u0438\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438\u0445 \u043d\u0430\u00a0\u0434\u0438\u0441\u043a, \u0430\u00a0\u0442\u0430\u043a\u00a0\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <i>MediaScanner<\/i> \u0434\u043b\u044f\u00a0\u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0433\u0430\u043b\u0435\u0440\u0435\u0435, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0438\u043b\u0438\u00a0\u0432\u0438\u0434\u0435\u043e).<\/p>\n<p><\/br><\/p>\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f\u00a0\u0436\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c\u00a0\u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u00a0\u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c \u0438\u00a0\u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u00a0\u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 <i>DownloadManager<\/i>.<\/p>\n<p><\/br><\/p>\n<p>DownloadManager \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0435\u0441\u044c \u0441\u043f\u0435\u043a\u0442\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441\u00a0\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432. \u041e\u043d \u0441\u0430\u043c \u043d\u0430\u0447\u043d\u0435\u0442 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u00a0\u043e\u0431\u0440\u044b\u0432 \u0441\u0432\u044f\u0437\u0438 \u0438\u043b\u0438\u00a0\u0441\u043c\u0435\u043d\u0443 \u0442\u0438\u043f\u0430 \u0441\u0435\u0442\u0438, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u00a0\u043d\u043e\u0432\u043e\u0439 (\u0435\u0441\u043b\u0438 \u0431\u044b\u043b \u043e\u0431\u0440\u044b\u0432 \u0441\u0432\u044f\u0437\u0438), \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0438\u00a0\u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e\u00a0\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0444\u0430\u0439\u043b\u0430, \u0443\u0432\u0435\u0434\u043e\u043c\u0438\u0442 <i>MediaScanner<\/i> \u043e\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e \u0444\u0430\u0439\u043b \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0438\u00a0\u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435.<\/p>\n<p><input id=\"button_android_download_save_file2\" type=\"button\" onclick=\"toggle(cut_android_download_save_file2, button_android_download_save_file2)\" value=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\" hiddenText=\"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c\" visibleText=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\"><\/p>\n<div id=\"cut_android_download_save_file2\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<p>\u0414\u043b\u044f\u00a0\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <i>DownloadManager<\/i> \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f:<\/p>\n<p><\/br><\/p>\n<ol start=\"1\">\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u00a0\u2014 \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a <i>BroadcastReceiver<\/i>, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u00a0\u0438\u043d\u0442\u0435\u043d\u0442\u044b, \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u043c\u044b\u0435 <i>DownloadManager<\/i>\u2019\u043e\u043c;<\/li>\n<li>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c URI \u0441\u00a0\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c;<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u043a\u0432\u0435\u0441\u0442 \u0441\u00a0\u043d\u0430\u0448\u0438\u043c URI \u0438\u00a0\u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 <i>DownloadManager<\/i>;<\/li>\n<li>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435.<br \/>\n<\/br><\/li>\n<\/ol>\n<p>\u0418\u0442\u0430\u043a \u043f\u0435\u0440\u0432\u043e \u043d\u0430\u043f\u0435\u0440\u0432\u043e\u00a0\u2014 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043a\u043b\u0430\u0441\u0441-\u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a <i>BroadcastReceiver<\/i> \u0438\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043b\u043e\u0433\u0438\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043a\u0430\u0436\u0435\u0442 Toast, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0448 \u0444\u0430\u0439\u043b \u0441\u043a\u0430\u0447\u0430\u0435\u0442\u0441\u044f:<\/p>\n<pre class=\"e2-text-code\"><code>\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u0420\u0435\u0441\u0438\u0432\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c (\u0437\u0430\u0434\u0430\u0447\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 - \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435)\r\n\/\/\/ &lt;\/summary&gt;\r\npublic class DownloadManagerReceiver : BroadcastReceiver\r\n{\r\n    public override void OnReceive(Context context, Intent intent)\r\n    {\r\n        if (intent.Action == DownloadManager.ActionDownloadComplete)\r\n        {\r\n            \/\/\u044d\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043b\u0443\u0447\u0448\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0438\u0437\u0432\u043d\u0435\r\n            DownloadManager downloadManager = (DownloadManager)context.GetSystemService(Activity.DownloadService);\r\n\r\n            long downloadId = intent.GetLongExtra(DownloadManager.ExtraDownloadId, -1);\r\n            if (downloadId == -1)\r\n            {\r\n                return;\r\n            }\r\n\r\n            DownloadManager.Query query = new DownloadManager.Query();\r\n            query.SetFilterById(new long[]{ downloadId });\r\n\r\n            ICursor cursor = downloadManager.InvokeQuery(query);\r\n            if (cursor != null &amp;&amp; cursor.MoveToFirst())\r\n            {\r\n                if (DownloadStatus.Successful == (DownloadStatus)cursor.GetInt(cursor.GetColumnIndex(DownloadManager.ColumnStatus)))\r\n                {\r\n                    string filename = cursor.GetString(cursor.GetColumnIndex(DownloadManager.ColumnTitle));\r\n                    \r\n                    Toast.makeText(context, string.Format(context.GetString(Resource.String.chat_attachement_succesfully_downloaded), filename), Toast.LENGTH_SHORT);\r\n                }\r\n            }\r\n\r\n        }\r\n    }\r\n}<\/code><\/pre><p><\/br><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u00a0\u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u0440\u0435\u0441\u0438\u0432\u0435\u0440:<\/p>\n<pre class=\"e2-text-code\"><code>protected override async void OnCreate(Bundle bundle)\r\n{\r\n    \/\/\u043a\u043e\u0434 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438\r\n    \/\/...\r\n    \/\/\/\/\/\/\/\/\/\r\n\r\n    \/\/\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0440\u0435\u0441\u0438\u0432\u0435\u0440 \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430\r\n    _downloadManagerReceiver = new DownloadManagerReceiver();\r\n    RegisterReceiver(_downloadManagerReceiver, new IntentFilter(DownloadManager.ActionDownloadComplete));\r\n}<\/code><\/pre><p><\/br><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u044d\u0442\u0430\u043f\u043e\u043c\u00a0\u2014 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430\u00a0\u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 <i>DownloadService<\/i>, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0438\u00a0\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435:<\/p>\n<pre class=\"e2-text-code\"><code>private void DownloadFile(string filename){\r\n    DownloadManager downloadManager = (DownloadManager)GetSystemService(Activity.DownloadService);\r\n    \/\/\u0440\u0435\u043a\u0432\u0435\u0441\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 URI \u0444\u0430\u0439\u043b\u0430 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 DownloadManager'\u0430\r\n    DownloadManager.Request request = new DownloadManager.Request(Android.Net.Uri.Parse(&quot;http:\/\/\u043d\u0430\u0448_url_\u0434\u043b\u044f_\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f&quot;));\r\n\r\n    \/\/\u043d\u043e\u0442\u0438\u0444\u0438\u043a\u0435\u0439\u0448\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u0435\u043d \u0432\u0441\u0435\u0433\u0434\u0430, \u043f\u043e\u043a\u0430 \u044e\u0437\u0435\u0440 \u043d\u0435 \u043e\u0442\u043c\u0435\u043d\u0438\u0442 \u0435\u0433\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u043b\u0438 \u043d\u0435 \u043a\u043b\u0438\u043a\u043d\u0435\u0442\r\n    request.SetNotificationVisibility(DownloadVisibility.VisibleNotifyCompleted);\r\n    \/\/\u0437\u0430\u0434\u0430\u0435\u043c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c\u0438 \u0438 \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 + \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\r\n    request.SetDestinationInExternalPublicDir(Android.OS.Environment.DirectoryDownloads, filename);\r\n    \/\/\u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0441\u043a\u0430\u043d\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b \u041c\u0435\u0434\u0438\u0430\u0421\u043a\u0430\u043d\u043d\u0435\u0440\u0443\r\n    request.AllowScanningByMediaScanner();\r\n\r\n    \/\/\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435\r\n    downloadManager.Enqueue(request);   \r\n}<\/code><\/pre><p><\/br><\/p>\n<p>\u0412\u043e\u0442 \u0438\u00a0\u0432\u0441\u0435, \u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0430\u0440\u0442\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0442\u0438\u0444\u0438\u043a\u0435\u0439\u0448\u043d \u0441\u043e\u00a0\u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f, \u0430\u00a0\u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b \u0432\u00a0\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p>\n<\/div>","date_published":"2015-12-07T22:12:40+03:00","date_modified":"2016-01-10T14:25:39+03:00","_date_published_rfc2822":"Mon, 07 Dec 2015 22:12:40 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/ispolzovanie-downloadmanager-dlya-skachivaniya-faylov-iz-seti-an\/","_e2_data":{"is_favourite":false,"links_required":["system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css","system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css","system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css"],"og_images":[]}},{"id":"24","url":"http:\/\/bibobo.ru\/all\/sohranenie-faylov-iz-seti-na-disk-v-publichnuyu-direktoriyu-andr\/","title":"\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0437\u00a0\u0441\u0435\u0442\u0438 \u043d\u0430\u00a0\u0434\u0438\u0441\u043a \u0432\u00a0\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e (Android)","content_html":"<p>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u043e\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u00a0\u0441\u0435\u0442\u0438 \u0438\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438\u0445 \u043d\u0430\u00a0\u0434\u0438\u0441\u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c:<\/p>\n<p><br\/><\/p>\n<ol start=\"1\">\n<li>\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0438\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0432\u0440\u0443\u0447\u043d\u0443\u044e;<\/li>\n<li>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441 <i>DownloadManager<\/i> \u0438\u00a0\u0434\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0435\u043c\u0443.<br \/>\n<br\/><\/li>\n<\/ol>\n<p>\u041f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043d\u0435\u00a0\u0431\u0443\u0434\u0443\u0442 \u0432\u0438\u0434\u043d\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u043d\u0430\u00a0\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0434\u043e\u00a0\u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u00a0\u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 (\u043b\u0438\u0431\u043e \u0434\u043e\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430).<\/p>\n<p><br\/><\/p>\n<p>\u0412\u00a0\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0443\u0447\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u00a0\u0434\u0438\u0441\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u00a0Xamarin.Android. \u0411\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <i>DownloadManager<\/i> \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0432\u00a0\u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p><input id=\"button_android_download_save_file1\" type=\"button\" onclick=\"toggle(cut_android_download_save_file1, button_android_download_save_file1)\" value=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\" hiddenText=\"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c\" visibleText=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\"><\/p>\n<div id=\"cut_android_download_save_file1\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<p>\u0414\u043b\u044f\u00a0\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 \u0444\u0430\u0439\u043b\u0430 \u0438\u0437\u00a0\u0441\u0435\u0442\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u00a0\u0435\u0433\u043e URL). \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 <i>WebClient<\/i>, \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434:<\/p>\n<pre class=\"e2-text-code\"><code>string url = \u201curl_\u043a_\u043d\u0430\u0448\u0435\u043c\u0443_\u0444\u0430\u0439\u043b\u0443\u201d;\r\nbyte[] dataBytes = new System.Net.WebClient().DownloadData(url);<\/code><\/pre><p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 \u043a\u0430\u043a \u0444\u0430\u0439\u043b \u043d\u0430\u00a0\u0434\u0438\u0441\u043a\u0435. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0443\u0442\u044c \u0434\u043e\u00a0\u043e\u0434\u043d\u043e\u0439 \u0438\u0437\u00a0\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439, \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438:<\/p>\n<p><br\/><\/p>\n<ol start=\"1\">\n<li>Environment.DirectoryMusic;<\/li>\n<li>Environment.DirectoryPodcasts;<\/li>\n<li>Environment.DirectoryRingtones;<\/li>\n<li>Environment.DirectoryAlarms;<\/li>\n<li>Environment.DirectoryNotifications;<\/li>\n<li>Environment.DirectoryPictures;<\/li>\n<li>Environment.DirectoryMovies;<\/li>\n<li>Environment.DirectoryDownloads;<\/li>\n<li>Environment.DirectoryDcim.<br \/>\n<br\/><\/li>\n<\/ol>\n<p>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0432\u043f\u043e\u043b\u043d\u0435 \u044f\u0441\u043d\u043e \u0438\u0437\u00a0\u0438\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <i>Environment.DirectoryDownloads<\/i>. \u041d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 (\u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0432\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445):<\/p>\n<p><br\/><\/p>\n<pre class=\"e2-text-code\"><code>\/\/\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0443\u0442\u044c \u043a \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c\u0438\r\nstring dirPath = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath;\r\n\/\/\u0435\u0441\u043b\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043d\u0435\u0442 (\u0442\u0430\u043a\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0434\u0430 \u041e_\u043e, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0435\u0435)\r\nif (!Directory.Exists(dirPath))\r\n{\r\n    Directory.CreateDirectory(dirPath);\r\n}\r\n\r\n\/\/\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0443\u0442\u044c \u0434\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0432 \u043d\u0430\u0448\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0435\u0441\u043b\u0438 \u043e\u043d \u0443\u0436\u0435 \u0435\u0441\u0442\u044c - \u0443\u0434\u0430\u043b\u0438\u043c \u0435\u0433\u043e\r\nstring filePath = Path.Combine(dirPath, file.Name);\r\nif (File.Exists(filePath))\r\n{\r\n    File.Delete(filePath);\r\n}\r\n\r\n\/\/\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 \u043d\u0430 \u0434\u0438\u0441\u043a\r\nFile.WriteAllBytes(filePath, fileBytes);<\/code><\/pre><p>\u041f\u043e\u0447\u0442\u0438 \u0433\u043e\u0442\u043e\u0432\u043e, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043e\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0430\u00a0\u0434\u0438\u0441\u043a\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0432\u0441\u0435\u043c \u0432\u043e\u043a\u0440\u0443\u0433. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 Android, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <i>MediaScanner<\/i>. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0\u041c\u0435\u0434\u0438\u0430\u0421\u043a\u0430\u043d\u043d\u0435\u0440\u043e\u043c, \u0432\u0441\u0435 \u043e\u043d\u0438 \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0438\u00a0\u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u041c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u00a0\u2014 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u0448\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u043d\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u041c\u0435\u0434\u0438\u0430\u0421\u043a\u0430\u043d\u043d\u0435\u0440 \u0435\u0433\u043e \u043f\u043e\u0439\u043c\u0430\u0435\u0442 \u0438\u00a0\u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u0444\u0430\u0439\u043b \u0432\u00a0\u0441\u0432\u043e\u044e \u0431\u0430\u0437\u0443.<\/p>\n<p><br\/><\/p>\n<pre class=\"e2-text-code\"><code>\/\/\u043e\u0431\u044a\u044f\u0432\u0438\u043c \u041c\u0435\u0434\u0438\u0430\u0421\u043a\u0430\u043d\u0435\u0440\u0443 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b\r\nIntent mediaScannerIntent = new Intent(Intent.ActionMediaScannerScanFile);\r\nmediaScannerIntent.SetData(Android.Net.Uri.FromFile(new Java.IO.File(filePath)));\r\nSendBroadcast(mediaScannerIntent);<\/code><\/pre><\/div>","date_published":"2015-12-02T22:06:16+03:00","date_modified":"2015-12-02T22:06:06+03:00","_date_published_rfc2822":"Wed, 02 Dec 2015 22:06:16 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/sohranenie-faylov-iz-seti-na-disk-v-publichnuyu-direktoriyu-andr\/","_e2_data":{"is_favourite":false,"links_required":["system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css","system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css","system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css"],"og_images":[]}},{"id":"23","url":"http:\/\/bibobo.ru\/all\/primenenie-konstreyntov-dlya-zagruzhennogo-xib-v-ios\/","title":"\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u043e\u0432 \u0434\u043b\u044f\u00a0\u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0433\u043e Xib \u0432\u00a0iOS","content_html":"<p>\u041e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u0414\u043b\u044f\u00a0\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0432\u00a0iOS \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432\u00a0\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 Xib-\u0444\u0430\u0439\u043b \u0438\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0435\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0437\u00a0\u043a\u043e\u0434\u0430. \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0433\u0440\u0443\u0437\u0438\u043c Xib \u043a\u0430\u043a \u044f\u0447\u0435\u0439\u043a\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0\u2014 \u043e\u043d \u0441\u043a\u0430\u043b\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u044f\u0447\u0435\u0439\u043a\u0438, \u043d\u043e\u00a0\u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u00a0\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u00a0\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u043b\u0438\u00a0View\u00a0\u2014 \u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u00a0\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c View \u0438\u0437\u00a0Xib \u043f\u0440\u0438\u00a0\u0440\u0435\u0441\u0430\u0439\u0437\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 View.<\/p>\n<p><br\/><\/p>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u00a0iOS 7 Apple \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0448\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u00a0\u2014 Auto Layout Constraints. \u041d\u043e\u00a0\u043f\u0440\u0438\u00a0\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 View \u0438\u0437\u00a0\u043a\u043e\u0434\u0430 \u0435\u0439 \u043d\u0435\u00a0\u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438.<\/p>\n<p><br\/><\/p>\n<p>\u0412\u044b\u0445\u043e\u0434\u00a0\u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<p><input id=\"button_ios_xib_constraints\" type=\"button\" onclick=\"toggle(cut_ios_xib_constraints, button_ios_xib_constraints)\" value=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\" hiddenText=\"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c\" visibleText=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\"><\/p>\n<div id=\"cut_ios_xib_constraints\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<p>\u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 View \u0438\u0437\u00a0Xib \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<p><br\/><\/p>\n<pre class=\"e2-text-code\"><code>\/\/\u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e autoresizing mask \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b (\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 xib-\u0435 \u043e\u043d\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e)\r\nviewFromXib.TranslatesAutoresizingMaskIntoConstraints = false;\r\n\r\nviewController.View.Add(viewFromXib);\r\n\r\n\/\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0435\u0441\u0430\u0439\u0437\u0430 \u0432\u044c\u044e\u0445\u0438 \u0438\u0437 xib-\u0430 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u044d\u0442\u0443 \u0432\u044c\u044e\u0445\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\r\nNSDictionary viewDict = NSDictionary.FromObjectAndKey(viewFromXib, new NSString(&quot;viewFromXib&quot;));\r\nviewController.View.AddConstraints(NSLayoutConstraint.FromVisualFormat(new NSString(&quot;H:|[viewFromXib]|&quot;), 0, null, viewDict));\r\nviewController.View.AddConstraints(NSLayoutConstraint.FromVisualFormat(new NSString(&quot;V:|[viewFromXib]|&quot;), 0, null, viewDict));<\/code><\/pre><\/div>","date_published":"2015-11-24T20:44:18+03:00","date_modified":"2015-11-24T20:44:13+03:00","_date_published_rfc2822":"Tue, 24 Nov 2015 20:44:18 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/primenenie-konstreyntov-dlya-zagruzhennogo-xib-v-ios\/","_e2_data":{"is_favourite":false,"links_required":["system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css"],"og_images":[]}},{"id":"22","url":"http:\/\/bibobo.ru\/all\/dinamicheskoe-izmenenie-leyauta-dlya-prortretnoy-i-landshaftnoy\/","title":"\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043b\u044d\u0439\u0430\u0443\u0442\u0430 \u0434\u043b\u044f\u00a0\u043f\u0440\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u0439 \u0438\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0430\u00a0iPad","content_html":"<p>\u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u00a0\u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0432\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438\u00a0\u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u0440\u043e\u043d \u044d\u043a\u0440\u0430\u043d\u0430. \u0412\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Apple \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0441\u0432\u043e\u0438\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c \u043a\u00a0\u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u0412\u00a0\u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442\u00a0Android, \u0434\u043b\u044f\u00a0\u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f\u00a0iOS \u043d\u0435\u00a0\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430. \u041d\u0430\u00a0iOS \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u00a0Interface Builder, \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044b \u0440\u0443\u0447\u043a\u0430\u043c\u0438 \u0438\u00a0\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0438\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 \u201c\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439\u201d (Auto Layout Constraints).<\/p>\n<p><input id=\"button_ios_ipad_layout\" type=\"button\" onclick=\"toggle(cut_ios_ipad_layout, button_ios_ipad_layout)\" value=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\" hiddenText=\"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c\" visibleText=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\"><\/p>\n<div id=\"cut_ios_ipad_layout\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<p>\u0422\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u00a0\u0436\u0435 Apple \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0441\u0432\u043e\u0438\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0432\u0438\u0434\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438\u00a0\u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439 \u0441\u0442\u043e\u0440\u043e\u043d \u044d\u043a\u0440\u0430\u043d\u0430. \u0414\u043b\u044f\u00a0\u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f\u00a0\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u044d\u043a\u0440\u0430\u043d\u043e\u0432 Apple \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u00a0\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c Size Classes. \u0415\u0441\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u043e\u00a0\u2014 \u0442\u043e \u0432\u0441\u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 2 \u0441\u0430\u0439\u0437 \u043a\u043b\u0430\u0441\u0441\u0430 (\u043e\u0434\u0438\u043d \u0434\u043b\u044f\u00a0\u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438, \u0432\u0442\u043e\u0440\u043e\u0439 \u0434\u043b\u044f\u00a0\u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438), \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u043d\u043e \u0438\u0437\u00a0\u0434\u0432\u0443\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (Regular\u00a0\u2014 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0438\u00a0Compact\u00a0\u2014 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439). \u041f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0432\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u0442\u0438\u043f\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u00a0\u0435\u0433\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u044d\u0442\u0438 \u0441\u0430\u0439\u0437 \u043a\u043b\u0430\u0441\u0441\u044b \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0442 \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p><br\/><\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f\u00a0iPhone 5 \u0432\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0437 \u043a\u043b\u0430\u0441\u0441 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Compact, \u0430\u00a0\u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439\u00a0\u2014 Regular. \u0415\u0441\u043b\u0438 iPhone \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u00a0\u2014 \u0442\u043e \u0441\u0430\u0439\u0437 \u043a\u043b\u0430\u0441\u0441\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u0430\u043c\u0438 (\u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c \u0441\u0442\u0430\u043d\u0435\u0442 Regular, \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u00a0\u2014 Compact).<\/p>\n<p><br\/><\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u00a0iOS 7 \u043d\u0430\u00a0Size classes \u0437\u0430\u0432\u044f\u0437\u0430\u043d\u043e \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043b\u044d\u0439\u0430\u0443\u0442\u043e\u0432 \u0432\u00a0Interface Builder. \u041f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0430 \u043b\u044d\u0439\u0430\u0443\u0442\u0430 \u0434\u043b\u044f\u00a0\u0440\u0430\u0437\u043d\u044b\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0441\u0430\u0439\u0437 \u043a\u043b\u0430\u0441\u0441\u043e\u0432\u00a0\u2014 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0438\u043b\u0438\u00a0\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b (Auto Layout Constraints) \u0432\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0430\u0439\u0437 \u043a\u043b\u0430\u0441\u0441\u0430. \u0423\u0436\u0435 \u043d\u0430\u00a0\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0430\u043c\u0430 \u043f\u043e\u0439\u043c\u0435\u0442 \u043a\u0430\u043a\u0438\u0435 \u0441\u0430\u0439\u0437 \u043a\u043b\u0430\u0441\u0441\u044b \u0432\u00a0\u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u044b \u0438\u00a0\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442 \u0438\u043b\u0438\u00a0\u0432\u043a\u043b\u044e\u0447\u0438\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u043e\u00a0\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0432\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0435 \u0438\u043b\u0438\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u0435.<\/p>\n<p><br\/><\/p>\n<p>\u0412\u00a0\u0441\u043b\u0443\u0447\u0430\u0435 iPad \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u043d\u0430\u0447\u0435. <b>\u041f\u043b\u0430\u043d\u0448\u0435\u0442 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u0430\u0439\u0437 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0434\u043b\u044f\u00a0\u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 \u0438\u00a0\u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438 \u0432\u00a0\u043b\u044e\u0431\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/b> \u0422\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u0430 \u0438\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0430 \u0438\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043b\u044d\u0439\u0430\u0443\u0442\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a:<\/p>\n<p><br\/><\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"570\" data-ratio=\"0.96446700507614\">\n<img src=\"http:\/\/bibobo.ru\/pictures\/1_1.png\" width=\"570\" height=\"591\" alt=\"\" \/>\n<img src=\"http:\/\/bibobo.ru\/pictures\/2_1.png\" width=\"766\" height=\"393\" alt=\"\" \/>\n<\/div>\n<\/div>\n<p>\u041d\u043e\u00a0\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u043e\u0439\u0442\u0438 \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p><br\/><\/p>\n<ol start=\"1\">\n<li>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u0434\u043b\u044f\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0430 \u0438\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u0430<\/li>\n<li>\u0412\u044b\u0432\u0435\u0441\u0442\u0438 \u0434\u0432\u0435 <i>IBOutlet Collection<\/i> (\u043e\u0434\u043d\u0443 \u0434\u043b\u044f\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u0430, \u0432\u0442\u043e\u0440\u0443\u044e \u0434\u043b\u044f\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0430) \u0438\u00a0\u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u043a\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0430\u0443\u0442\u043b\u0435\u0442\u0443<\/li>\n<li>\u0412\u00a0\u043a\u043e\u0434\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u0437\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043d\u0430\u00a0\u0441\u043e\u0431\u044b\u0442\u0438\u0435 <i>UIDeviceOrientationDidChangeNotification<\/i>. \u041f\u043e\u00a0\u0441\u043e\u0431\u044b\u0442\u0438\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0438\u0434\u0438\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u00a0\u043f\u043e\u00a0\u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0430\u0440\u0430 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0438\u00a0\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u043e\u0432<\/li>\n<\/ol>\n<p>\u041f\u0440\u043e\u0439\u0434\u0435\u043c\u0441\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0439 \u043f\u043e\u00a0\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u044d\u0442\u0430\u043f\u0430\u043c.<\/p>\n<p><br\/><\/p>\n<h2>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u0434\u043b\u044f\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0430 \u0438\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u0430<\/h2>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435:<\/p>\n<p><br\/><\/p>\n<p>1. \u0414\u043b\u044f\u00a0\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u044d\u0439\u0430\u0443\u0442 \u043f\u043e\u0434\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u0443\u044e \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044e<br\/>\r\n2. \u041f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u0449\u0438\u043c\u0438, \u0430\u00a0\u043a\u0430\u043a\u0438\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u0443<br\/>\r\n3. \u0414\u043b\u044f\u00a0\u043a\u0430\u0436\u0434\u043e\u0433\u043e <b>\u043d\u0435\u00a0\u043e\u0431\u0449\u0435\u0433\u043e<\/b> \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f\u00a0\u043b\u044e\u0431\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u0438\u00a0Regular \u0432\u044b\u0441\u043e\u0442\u044b (Any Width &\u00a0Regular Height)<\/p>\n<p><br\/><\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/bibobo.ru\/pictures\/3_1.png\" width=\"401\" height=\"343\" alt=\"\" \/>\n<\/div>\n<p>4. \u0414\u0430\u043b\u0435\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442 \u0432\u00a0\u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u0435\u0437\u00a0\u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0441\u0430\u0439\u0437 \u043a\u043b\u0430\u0441\u0441\u043e\u0432<br\/>\r\n5. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u0443\u043d\u043a\u0442\u044b 3 \u0438\u00a04 \u0434\u043b\u044f\u00a0\u0432\u0441\u0435\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u043b\u044f\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438<br\/>\r\n6. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u00a0\u0442\u043e\u043c\u00a0\u0436\u0435 \u044d\u043a\u0440\u0430\u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u0434\u043b\u044f\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438<br\/>\r\n7. \u0414\u043b\u044f\u00a0\u0432\u0441\u0435\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u043e\u0432, \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u043b\u044f\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0434\u043b\u044f\u00a0\u043b\u044e\u0431\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b \u0438\u00a0\u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0439 \u0432\u044b\u0441\u043e\u0442\u044b (Any Width &\u00a0Compact Height)<br\/>\r\n8. \u0414\u0430\u043b\u0435\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442 \u0432\u00a0\u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u0435\u0437\u00a0\u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0441\u0430\u0439\u0437 \u043a\u043b\u0430\u0441\u0441\u043e\u0432<br\/>\r\n9. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u0443\u043d\u043a\u0442\u044b 7 \u0438\u00a08 \u0434\u043b\u044f\u00a0\u0432\u0441\u0435\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u043b\u044f\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438\r\n<\/p>\n<h2>\u0412\u044b\u0432\u0435\u0441\u0442\u0438 \u0434\u0432\u0435 IBOutlet Collection (\u043e\u0434\u043d\u0443 \u0434\u043b\u044f\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u0430, \u0432\u0442\u043e\u0440\u0443\u044e \u0434\u043b\u044f\u00a0\u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0430) \u0438\u00a0\u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u043a\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0430\u0443\u0442\u043b\u0435\u0442\u0443<\/h2>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u0447\u043d\u0435\u043c \u0441\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u043e\u0432, \u043e\u0442\u043a\u0440\u043e\u0435\u043c Assistant Editor, \u043d\u0430\u0439\u0434\u0435\u043c \u0432\u00a0\u043b\u0435\u0432\u043e\u043c \u043f\u0430\u043d\u0435 \u043d\u0430\u0448 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442 (\u043e\u043d \u0441\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d) \u0438\u00a0\u043f\u0435\u0440\u0435\u0442\u044f\u043d\u0435\u043c \u0435\u0433\u043e (<b>\u0441\u00a0\u0437\u0430\u0436\u0430\u0442\u044b\u043c Ctrl<\/b>) \u0432\u00a0\u043f\u0430\u043d \u0441\u00a0\u043a\u043e\u0434\u043e\u043c (Assistant Editor)<\/p>\n<p><br\/><\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/bibobo.ru\/pictures\/4_1.png\" width=\"1253\" height=\"485\" alt=\"\" \/>\n<\/div>\n<p>\u0412\u00a0\u043e\u043a\u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0430\u0443\u0442\u043b\u0435\u0442\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e \u0438\u043c\u044f \u0438\u00a0\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u00a0\u043f\u043e\u043b\u0435 Connection \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <b>Outlet Collection<\/b>.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/bibobo.ru\/pictures\/5_1.png\" width=\"337\" height=\"141\" alt=\"\" \/>\n<\/div>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0436\u0430\u0442\u044c Connect\u00a0\u2014 \u043d\u0430\u0448 \u043d\u043e\u0432\u044b\u0439 \u0430\u0443\u0442\u043b\u0435\u0442 \u0441\u0432\u044f\u0436\u0435\u0442\u0441\u044f \u0441\u00a0\u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u043e\u043c.\r\n\u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0438\u0442\u044c \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044c\u00a0\u2014 \u043d\u0435\u00a0\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0448\u0430\u0433\u0438 \u0441\u00a0\u043e\u0441\u0442\u0430\u0432\u0448\u0438\u043c\u0438\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u0430\u043c\u0438 \u0434\u043b\u044f\u00a0\u043f\u043e\u0440\u0442\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u043a\u043e\u0441\u043d\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0441\u00a0\u043d\u0430\u0448\u0438\u043c \u0430\u0443\u0442\u043b\u0435\u0442\u043e\u043c \u0447\u0435\u0440\u0435\u0437 \u043e\u043a\u043d\u043e \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 (Connections Inspector). \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442, \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0435\u0433\u043e \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0438\u00a0\u0438\u0437\u00a0\u043f\u043e\u043b\u044f Referencing Outlet Collections \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u00a0\u043d\u0430\u0448\u0438\u043c \u0430\u0443\u0442\u043b\u0435\u0442\u043e\u043c.<\/p>\n<p><br\/><\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/bibobo.ru\/pictures\/6.png\" width=\"620\" height=\"471\" alt=\"\" \/>\n<\/div>\n<p>\u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430 \u0432\u00a0Interface Builder \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u0430.<\/p>\n<p><br\/><\/p>\n<h2>\u0412\u00a0\u043a\u043e\u0434\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u0437\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043d\u0430\u00a0\u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u201cUIDeviceOrientationDidChangeNotification\u201d<\/h2>\n<p>\u0412\u00a0\u043a\u043e\u0434\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0432\u00a0\u043c\u0435\u0442\u043e\u0434\u0435 <i>viewDidLoad<\/i> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u00a0\u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043e\u0431\u0437\u0435\u0440\u0432\u0435\u0440\u0430 <i>UIDeviceOrientationDidChangeNotification<\/i>. \u041e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u044f\u043a\u0438\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f.<\/p>\n<p><br\/><\/p>\n<pre class=\"e2-text-code\"><code>NSNotificationCenter.DefaultCenter.AddObserver(new NSString(&quot;UIDeviceOrientationDidChangeNotification&quot;), (notification) =&gt;\r\n{\r\n\tUpdateControlsFrames();\r\n});<\/code><\/pre><p><br\/><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <i>UpdateControlsFrames()<\/i> \u0438\u00a0\u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u043f\u043e\u00a0\u0438\u0434\u0438\u043e\u043c\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438\u00a0\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0430\u0440\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u044b \u043b\u0438\u0431\u043e \u043f\u043e\u0440\u0442\u0440\u0435\u0442\u0430, \u043b\u0438\u0431\u043e \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0430.<\/p>\n<p><br\/><\/p>\n<pre class=\"e2-text-code\"><code>void UpdateControlsFrames()\r\n{\r\n\tif ((new UIDevice()).UserInterfaceIdiom != UIUserInterfaceIdiom.Pad)\r\n\t{\r\n\t\treturn;\r\n\t}\r\n\r\n\tbool isPortraint = true;\r\n\tif (UIApplication.SharedApplication.StatusBarOrientation == UIInterfaceOrientation.LandscapeLeft\r\n\t\t|| UIApplication.SharedApplication.StatusBarOrientation == UIInterfaceOrientation.LandscapeRight)\r\n\t{\r\n\t\tisPortraint = false;\r\n\t}\r\n\r\n\tif (isPortraint)\r\n\t{\r\n\t\tNSLayoutConstraint.DeactivateConstraints(landscapeLayoutConstraints);\r\n\t\tNSLayoutConstraint.ActivateConstraints(portraintLayoutConstraints);\r\n\t}\r\n\telse\r\n\t{\r\n\t\tNSLayoutConstraint.DeactivateConstraints(portraintLayoutConstraints);\r\n\t\tNSLayoutConstraint.ActivateConstraints(landscapeLayoutConstraints);\r\n\t}\r\n\r\n\tView.SetNeedsLayout();\r\n\tView.LayoutSubviews();\r\n}<\/code><\/pre><p><br\/><\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442\u043e\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c <i>SetNeedsLayout()<\/i> \u0438\u00a0<i>LayoutSubviews()<\/i> \u0443\u00a0\u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 <i>View<\/i>, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u00a0\u0443\u0447\u0435\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<\/div>","date_published":"2015-11-23T21:59:09+03:00","date_modified":"2015-11-23T21:59:06+03:00","image":"http:\/\/bibobo.ru\/pictures\/1_1.png","_date_published_rfc2822":"Mon, 23 Nov 2015 21:59:09 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/dinamicheskoe-izmenenie-leyauta-dlya-prortretnoy-i-landshaftnoy\/","_e2_data":{"is_favourite":false,"links_required":["system\/library\/fotorama\/fotorama.css","system\/library\/fotorama\/fotorama.js","system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css","system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css"],"og_images":["http:\/\/bibobo.ru\/pictures\/1_1.png","http:\/\/bibobo.ru\/pictures\/2_1.png","http:\/\/bibobo.ru\/pictures\/3_1.png","http:\/\/bibobo.ru\/pictures\/4_1.png","http:\/\/bibobo.ru\/pictures\/5_1.png","http:\/\/bibobo.ru\/pictures\/6.png"]}},{"id":"16","url":"http:\/\/bibobo.ru\/all\/ispolzovanie-fragment-bez-ui-dlya-hraneniya-dannyh\/","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Fragment \u0431\u0435\u0437\u00a0UI \u0434\u043b\u044f\u00a0\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445","content_html":"<p>Fragment\u00a0\u2014 \u044d\u0442\u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438\u00a0\u0435\u0433\u043e \u043b\u043e\u0433\u0438\u043a\u0443 \u0434\u043b\u044f\u00a0\u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u0431\u044b\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u00a0Android 3.0 \u0438\u00a0\u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u043e\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f\u00a0\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441\u00a0\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438 \u044d\u043a\u0440\u0430\u043d\u043e\u0432 (\u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0430\u044f \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0430 Responsive Design, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u043d\u043e \u0438\u00a0\u0442\u043e\u00a0\u0436\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u043e\u00a0\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u043d\u0430\u00a0\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441\u00a0\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u044e \u044d\u043a\u0440\u0430\u043d\u0430).<\/p>\n<p><input id=\"button_using_fragment_without_ui\" type=\"button\" onclick=\"toggle(cut_using_fragment_without_ui, button_using_fragment_without_ui)\" value=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\" hiddenText=\"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c\" visibleText=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\"><\/p>\n<div id=\"cut_using_fragment_without_ui\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<p>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u044b \u0438\u00a0\u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438:<\/p>\n<p><br><\/p>\n<ol start=\"1\">\n<li>\u041e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430\u00a0Activity \u0438\u00a0\u0438\u043c\u0435\u044e\u0442 \u0441\u0445\u043e\u0436\u0438\u0439 \u0446\u0438\u043a\u043b \u0436\u0438\u0437\u043d\u0438, \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c\u0438;<\/li>\n<li>\u041a\u0430\u043a \u0438\u00a0Activity \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u044e\u0442 \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c;<\/li>\n<li>\u041c\u043e\u0433\u0443\u0442 \u0436\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0438 Activity, \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u043e\u0434\u0438\u043d \u0438\u00a0\u0442\u043e\u0442\u00a0\u0436\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0432\u00a0\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 Activity, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u043f\u0440\u0438\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f\u00a0\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.<\/li>\n<\/ol>\n<p>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u0435\u0449\u0451 \u043e\u0434\u043d\u0438\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0440\u0438\u00a0\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439\u00a0\u2014 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432\u043e\u0432\u0441\u0435 \u0431\u0435\u0437\u00a0\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438\u00a0\u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0435\u00a0\u0443\u043c\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u00a0\u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 Activity. \u042d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043a\u00a0\u043c\u0435\u0441\u0442\u0443 \u0434\u043b\u044f\u00a0\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043c\u043e\u0434\u0435\u043b\u0438) \u0432\u00a0\u0442\u0430\u043a\u043e\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0435.<\/p>\n<p>\u0414\u043b\u044f\u00a0\u043c\u043d\u043e\u0433\u0438\u0445 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0445 \u0441\u00a0\u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 Android \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u00a0\u2014 \u0432\u00a0\u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 Activity \u0431\u0443\u0434\u0435\u0442 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0430 \u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0432\u043d\u043e\u0432\u044c \u0441\u00a0\u043b\u044d\u043d\u0434\u0441\u043a\u0435\u0439\u043f\u043d\u044b\u043c \u043b\u044d\u0439\u0430\u0443\u0442\u043e\u043c. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043a\u00a0Activity \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445\u00a0\u2014 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u00a0\u0436\u0435 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d (\u0438\u043b\u0438\u00a0\u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d, \u0432\u00a0\u0441\u043b\u0443\u0447\u0430\u0435 ContentProvider).<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u00a0\u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0431\u0435\u0437\u00a0UI \u0438\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432\u00a0\u0435\u0433\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 true \u0432\u00a0\u0441\u0435\u0442\u0442\u0435\u0440 setRetainInstance (Java), \u043b\u0438\u0431\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 true \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 RetainInstance (C#). \u0414\u0430\u043b\u0435\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u00a0\u043d\u0451\u043c \u043d\u0430\u0448\u0443 \u043c\u043e\u0434\u0435\u043b\u044c.<\/p>\n<p>\u0412\u0441\u0435, \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u00a0\u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0435\u0451 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438\u00a0\u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 Activity.<\/p>\n<p><br><\/p>\n<p>\u041d\u0438\u0436\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u043d\u0430\u00a0C# \u0438\u00a0Xamarin:<\/p>\n<pre><pre class=\"e2-text-code\"><code>\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0431\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u043c\u043e\u0434\u0435\u043b\u044c\r\n\/\/\/ (\u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0442\u0435\u0439\u043d\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u044c\u044e\u0445\u0438 \u0438 \u043d\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 Activity)\r\n\/\/\/ &lt;\/summary&gt;\r\npublic class ModelHolderFragment : Android.App.Fragment{\r\n\tpublic static string SearchTag = &quot;MODEL_HOLDER_FRAGMENT&quot;;\r\n\r\n\tpublic ViewPagerItem[] DataSourceItems { get; private set;}\r\n\r\n\tpublic override void OnCreate (Bundle savedInstanceState)\r\n\t{\r\n\t\tbase.OnCreate (savedInstanceState);\r\n\r\n\t\tDataSourceItems = GenViewPagerItems ();\r\n\r\n\t\t\/\/\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0444\u043b\u0430\u0433, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0443 \u0443\u043c\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u044c\u044e\u0445\u0438\r\n\t\tRetainInstance = true;\r\n\t}\r\n\r\n\t\/\/\/ &lt;summary&gt;\r\n\t\/\/\/ \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0444\u0435\u0439\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\r\n\t\/\/\/ &lt;\/summary&gt;\r\n\t\/\/\/ &lt;returns&gt;The view pager items.&lt;\/returns&gt;\r\n\tprivate ViewPagerItem[] GenViewPagerItems(){\r\n\t\t...\r\n\t\treturn items;\r\n\t}\r\n}\r\n\r\n\/\/\/\u0425\u044d\u043d\u0434\u043b\u0435\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u044f OnCreate \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 Activity - \u0442\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043d\u0430\u0448\u0435\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\r\nprotected override void OnCreate(Bundle savedInstanceState) {\r\n\tbase.OnCreate(savedInstanceState);\r\n\tSetContentView (Resource.Layout.activity_main);\r\n\r\n\t\/\/\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0431\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0432\u044c\u044e\u0445\u0438\r\n\tif (savedInstanceState == null) {\r\n\t\tFragmentManager.BeginTransaction ().Add ((Android.App.Fragment)new ModelHolderFragment (), ModelHolderFragment.SearchTag).Commit();\r\n\t\tFragmentManager.ExecutePendingTransactions ();\r\n\t}\r\n\t_model = (ModelHolderFragment)FragmentManager.FindFragmentByTag (ModelHolderFragment.SearchTag);\r\n}<\/code><\/pre><\/pre>\n<\/div>","date_published":"2015-06-19T21:01:03+03:00","date_modified":"2015-06-19T21:00:52+03:00","_date_published_rfc2822":"Fri, 19 Jun 2015 21:01:03 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/ispolzovanie-fragment-bez-ui-dlya-hraneniya-dannyh\/","_e2_data":{"is_favourite":false,"links_required":["system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css"],"og_images":[]}},{"id":"15","url":"http:\/\/bibobo.ru\/all\/ispolzovanie-patterna-viewholder\/","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 ViewHolder","content_html":"<p>\u0421\u00a0\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u044f\u00a0\u0431\u044b \u0445\u043e\u0442\u0435\u043b \u043d\u0430\u0447\u0430\u0442\u044c \u0446\u0438\u043a\u043b \u043a\u0440\u0430\u0442\u043a\u0438\u0445 \u0437\u0430\u043c\u0435\u0442\u043e\u043a \u043e\u00a0\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u043e\u0434\u00a0\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u00a0\u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u0438\u00a0\u043f\u043b\u0430\u043d\u0448\u0435\u0442\u044b\u00a0\u2014 \u043c\u043e\u0435 \u0434\u0430\u0432\u043d\u0435\u0435 \u0443\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435. \u041a\u00a0\u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043f\u043b\u043e\u0442\u043d\u043e \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u043c, \u0432\u00a0\u0441\u0438\u043b\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432, \u044f \u0441\u043c\u043e\u0433 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u0439\u0447\u0430\u0441. \u0412\u00a0\u043f\u0440\u043e\u0447\u0435\u043c \u0445\u0432\u0430\u0442\u0438\u0442 \u043b\u0438\u0440\u0438\u043a\u0438, \u043d\u0430\u0447\u043d\u0451\u043c.\r\n\u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u044f \u0432\u044b\u0431\u0440\u0430\u043b Android, \u043a\u0430\u043a \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043c\u0430\u0441\u0441\u043e\u0432\u0443\u044e \u0438\u00a0\u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c C#, \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u00a0Xamarin \u0441\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Android API.<\/p>\n<p><input id=\"button_using_viewholder\" type=\"button\" onclick=\"toggle(cut_using_viewholder, button_using_viewholder)\" value=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\" hiddenText=\"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c\" visibleText=\"\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\"><\/p>\n<div id=\"cut_using_viewholder\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u043e\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u044d\u0442\u043e \u043d\u0435\u043a\u0438\u0439 \u044d\u043a\u0440\u0430\u043d \u0441\u00a0\u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0445 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0434\u043b\u044f\u00a0\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043b\u0438\u00a0\u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0433\u0440\u0438\u0434. \u0418\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0438\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430\u00a0\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441\u00a0\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u00a0\u0441\u043b\u0430\u0431\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c (\u0445\u0430\u0445\u0430! \u0412\u00a0\u043c\u043e\u0435\u043c \u043f\u0435\u0440\u0432\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0431\u044b\u043b\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u0440\u0430\u0437 \u0432\u00a015 \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u00a0\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043b\u0430\u0431\u0435\u0435, \u0447\u0435\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u00a0\u0441\u0440\u0435\u0434\u043d\u0435\u043c \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435) \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0440\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u043e\u00a0\u0441\u043f\u0438\u0441\u043a\u0435 (ListView \u0432\u00a0Android), \u0430\u00a0\u0435\u0441\u043b\u0438 \u0442\u043e\u0447\u043d\u0435\u0435 \u043e\u0431\u00a0\u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f\u00a0\u0441\u043f\u0438\u0441\u043a\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 ArrayAdapter \u0432\u00a0Android) \u043c\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441\u00a0\u043e\u0434\u043d\u043e\u0439 \u0438\u0437\u00a0\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0440\u0435\u0447\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b.<\/p>\n<p>\u0422\u0430\u043a\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e \u043b\u0438\u0441\u0442 \u043d\u0435\u00a0\u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u043e\u0434\u00a0\u043a\u0430\u0436\u0434\u0443\u044e \u0438\u0437\u00a0\u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043b\u0438\u0448\u044c \u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044f\u0447\u0435\u0435\u043a, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0436\u0435\u0442 \u0443\u043c\u0435\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u00a0\u044d\u043a\u0440\u0430\u043d\u0435 \u0432\u00a0\u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043b\u044e\u0441 \u043f\u043e\u00a0\u043e\u0434\u043d\u043e\u0439 \u043b\u0438\u0448\u043d\u0435\u0439 \u044f\u0447\u0435\u0439\u043a\u0435 \u0441\u0432\u0435\u0440\u0445\u0443 \u0438\u00a0\u0441\u043d\u0438\u0437\u0443. \u0422\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u043e \u043d\u0435\u00a0\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f\u00a0Android, \u043d\u043e\u00a0\u0438\u00a0\u0434\u043b\u044f\u00a0iOS.<\/p>\n<p>\u041f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0435\u00a0\u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u044f\u0447\u0435\u0439\u043a\u0438, \u043e\u043d\u0430 \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u0438\u0445 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u044f\u0447\u0435\u0439\u043a\u0430 \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0438\u0437\u00a0\u043f\u043e\u043b\u044f \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432\u00a0\u043c\u0435\u0442\u043e\u0434 GetView() \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0412\u00a0\u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c, \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u044f\u0447\u0435\u0439\u043a\u0443 \u0438\u043b\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e.<\/p>\n<p>\u0412\u0441\u0435\u00a0\u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e, \u043d\u043e\u00a0\u0435\u0441\u043b\u0438 \u043b\u044d\u0439\u0430\u0443\u0442 \u044f\u0447\u0435\u0439\u043a\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0442\u043e \u043c\u044b \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u00a0\u043b\u044d\u0439\u0430\u0443\u0442\u0435 (TextView, ImageView \u0438\u00a0\u0442.\u00a0\u043f.) \u0434\u043b\u044f\u00a0\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438\u0445 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0412\u0440\u043e\u0434\u0435\u00a0\u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e, \u0432\u044b\u0437\u0432\u0430\u043b <i>FindViewById()<\/i> \u0441\u00a0\u043d\u0443\u0436\u043d\u044b\u043c id \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0435\u0433\u043e \u0438\u00a0\u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043d\u043e\u00a0\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 <i>FindViewById()<\/i> \u044d\u0442\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 \u0442\u044f\u043d\u0435\u0442 \u0437\u0430\u00a0\u0441\u043e\u0431\u043e\u0439 \u0442\u0440\u0430\u0432\u0435\u0440\u0441 \u043f\u043e\u00a0XML-\u043a\u043e\u0434\u0443 \u043b\u044d\u0439\u0430\u0443\u0442\u0430 \u043d\u0430\u0448\u0435\u0439 \u044f\u0447\u0435\u0439\u043a\u0438. \u0412\u00a0\u0438\u0442\u043e\u0433\u0435 \u043d\u0430\u00a0\u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043b\u044d\u0439\u0430\u0443\u0442\u0430\u0445 \u0438\u043c\u0435\u0435\u043c \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0443 \u043f\u043e\u00a0\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u043a\u0440\u043e\u043b\u043b\u0438\u043d\u0433\u0430 \u0441\u043f\u0438\u0441\u043a\u0430.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d <b>ViewHolder<\/b>. \u041a\u0440\u0430\u0442\u043a\u043e \u0435\u0433\u043e \u0441\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c:<\/p>\n<p><br><\/p>\n<ol start=\"1\">\n<li>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043a\u043b\u0430\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u00a0\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430\u0448\u0443 <i>View<\/i>, \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u0440\u0430\u0432\u0435\u0440\u0441 \u0438\u00a0\u0438\u0449\u0435\u0442 \u0432\u0441\u0435 \u0435\u0451 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f\u00a0\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445;<\/li>\n<li>\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430\u00a0\u044d\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430, \u0441\u043d\u0430\u0431\u0436\u0430\u0435\u043c \u0438\u0445 \u0433\u0435\u0442\u0442\u0435\u0440\u0430\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u043e\u043c \u043a\u00a0\u043d\u0438\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f;<\/li>\n<li>\u041f\u0440\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043d\u0430\u0448\u0435\u0439 <i>View<\/i>\u00a0\u2014 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u0430\u0448 <i>\u043a\u043b\u0430\u0441\u0441-ViewHolder<\/i> \u0438\u00a0\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430\u00a0\u043d\u0435\u0433\u043e \u0432\u00a0\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435 <i>Tag<\/i> \u0443\u00a0\u043d\u0430\u0448\u0435\u0439 <i>View<\/i>;<\/li>\n<li>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u00a0\u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <i>View<\/i> \u043d\u0430\u043c \u043d\u0435\u00a0\u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u00a0\u043b\u044d\u0439\u0430\u0443\u0442\u0435, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430\u00a0<i>ViewHolder<\/i> \u0438\u0437\u00a0\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <i>Tag<\/i> \u0438\u00a0\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0433\u0435\u0442\u0442\u0435\u0440\u0430\u043c \u0445\u043e\u043b\u0434\u0435\u0440\u0430;<\/li>\n<li>PROFIT.<\/li>\n<\/ol>\n<p>\u0415\u0441\u043b\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043d\u0430\u00a0Java \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0435\u00a0\u0434\u043e\u043b\u0436\u043d\u043e, \u043d\u043e\u00a0\u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c C# \u0438\u00a0Xamarin \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0435\u043c\u0441\u044f \u0441\u00a0\u043a\u043e\u0440\u043d\u044f\u043c\u0438, \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u043c\u0438 \u0438\u0437\u00a0Java :-)<\/p>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043a\u043b\u0430\u0441\u0441:<\/p>\n<pre><pre class=\"e2-text-code\"><code>public class MyViewHolder{\r\npublic TextView MyTextView {get; private set;}\r\n\r\npublic MyViewHolder(View view){\r\n...\r\n}\r\n}<\/code><\/pre><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430\u00a0\u043d\u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 <i>Tag<\/i> \u043d\u0430\u0448\u0435\u0439 <i>View<\/i> \u0443\u00a0\u043d\u0430\u0441 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <i>Tag<\/i> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 <i>Java.Lang.Object<\/i>, \u0430\u00a0\u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d \u043e\u0442\u00a0\u0442\u0438\u043f\u0430 <i>Object<\/i>. \u041f\u0440\u044f\u043c\u043e\u0435 \u043a\u0430\u0441\u0442\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u00a0\u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u0442\u0430\u043a\u00a0\u0436\u0435 \u043d\u0435\u00a0\u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a\u00a0\u0443\u0441\u043f\u0435\u0445\u0443. \u041a\u0430\u0441\u0442\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u00a0<i>Object<\/i>, \u0430\u00a0\u043f\u043e\u0442\u043e\u043c \u043a\u00a0<i>Java.Lang.Object<\/i> \u043d\u0435\u00a0\u0434\u0430\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0437\u0430\u0442\u043e \u0443\u043f\u0430\u0434\u0451\u0442 \u0432\u00a0\u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435.<\/p>\n<p>\u0427\u0442\u043e\u00a0\u0436\u0435 \u0434\u0435\u043b\u0430\u0442\u044c? <b>\u0412\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e :-) \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441 \u043e\u0442\u00a0\u0442\u0438\u043f\u0430 <i>Java.Lang.Object<\/i> \u0438\u00a0\u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0430\u0441\u0442\u044c\u0435!<\/b><\/p>\n<p><br><\/p>\n<p>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<pre><pre class=\"e2-text-code\"><code>public class TimetableItemAdapter : ArrayAdapter&lt;TimetableItem&gt;\r\n{\r\n\t\/\/\/ &lt;summary&gt;\r\n\t\/\/\/ \u041a\u043b\u0430\u0441\u0441 ViewHolder, \u043d\u0443\u0436\u0435\u043d \u0447\u0442\u043e \u0431\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u0440\u0430\u0432\u0435\u0440\u0441 \u043f\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0432\u044c\u044e\u0445\u0438, \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438\r\n\t\/\/\/ &lt;\/summary&gt;\r\n\tpublic class TimetableItemViewHolder : Java.Lang.Object{\r\n\t\tpublic TextView TimeText { get; private set;}\r\n\t\tpublic TextView DescriptionText { get; private set;}\r\n\t\tpublic ImageView AcceptButton { get; private set;}\r\n\r\n\t\tpublic TimetableItem BoundedItem { get; set;}\r\n\r\n\t\tpublic TimetableItemViewHolder(View view, TimetableItem item){\r\n\t\t\tTimeText = view.FindViewById&lt;TextView&gt;(Resource.Id.timetable_time_text);\r\n\t\t\tDescriptionText = view.FindViewById&lt;TextView&gt;(Resource.Id.timetable_description_text);\r\n\t\t\tAcceptButton = view.FindViewById&lt;ImageView&gt;(Resource.Id.timetable_accept);\r\n\r\n\t\t\tBoundedItem = item;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate MainActivity _context;\r\n\r\n\tpublic TimetableItemAdapter(Context context, int resource, IList&lt;TimetableItem&gt; objects) : base(context, resource, objects) {\r\n\t\t_context = (MainActivity)context;\r\n\t}\r\n\t\t\t\r\n\tpublic override View GetView(int position, View convertView, ViewGroup parent) {\r\n\t\tView resultView = null;\r\n\t\tTimetableItemViewHolder holder = null;\r\n\t\tTimetableItem item = GetItem(position);\r\n\r\n\t\tif(convertView != null){\r\n\t\t\tresultView = convertView;\r\n\t\t\tholder = (TimetableItemViewHolder)convertView.Tag;\r\n\t\t\tholder.BoundedItem = item;\r\n\t\t}else{\r\n\t\t\tresultView = ((LayoutInflater)_context.GetSystemService(Context.LayoutInflaterService))\r\n\t\t\t\t.Inflate(Resource.Layout.timetable_list_item, parent, false);\r\n\t\t\tholder = new TimetableItemViewHolder(resultView, item);\r\n\t\t\tresultView.Tag = holder;\r\n\t\t}\r\n\r\n\t\tif(item != null &amp;&amp; holder != null){\r\n\t\t\tholder.TimeText.Text = item.Time;\r\n\t\t\tholder.DescriptionText.Text = item.Description;\r\n\t\t}\r\n\r\n\t\treturn resultView;\r\n\t}\r\n}<\/code><\/pre><\/pre>\n<p>\u0412\u043e\u00a0<i>ViewHolder<\/i> \u043d\u0435\u00a0\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043b\u044d\u0439\u0430\u0443\u0442\u0430, \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u00a0\u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u00a0\u043a\u043e\u0434\u0435 \u0432\u044b\u0448\u0435 \u0432\u043e\u00a0<i>ViewHolder<\/i> \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437\u00a0\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0434\u043b\u044f\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c. \u041d\u043e\u00a0\u0432\u00a0\u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438\u00a0\u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <i>View<\/i> \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u00a0\u0437\u0430\u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u00a0\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430\u00a0\u043d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/div>","date_published":"2015-06-17T10:56:43+03:00","date_modified":"2015-06-17T10:56:31+03:00","_date_published_rfc2822":"Wed, 17 Jun 2015 10:56:43 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/ispolzovanie-patterna-viewholder\/","_e2_data":{"is_favourite":false,"links_required":["system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css","system\/library\/highlight\/highlight.js","system\/library\/highlight\/highlight.css"],"og_images":[]}}],"_e2_version":3254,"_e2_ua_string":"E2 (v3254; Aegea)"}