{"version":"https:\/\/jsonfeed.org\/version\/1","title":"Just Developer Blog, \u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u0441 \u0442\u0435\u0433\u043e\u043c: iOS development","home_page_url":"http:\/\/bibobo.ru\/tags\/ios-development\/","feed_url":"http:\/\/bibobo.ru\/tags\/ios-development\/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":"30","url":"http:\/\/bibobo.ru\/all\/rabota-s-avaudioplayer-i-mpnowplayinginfo-ios\/","title":"\u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u00a0AVAudioPlayer \u0438\u00a0MPNowPlayingInfo (iOS)","content_html":"<p>\u0412\u00a0\u0445\u043e\u0434\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u0434\u00a0iOS \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 \u043f\u0440\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0430\u0443\u0434\u0438\u043e-\u0444\u0430\u0439\u043b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0438\u043b\u0438\u00a0\u044d\u0444\u0444\u0435\u043a\u0442. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0432\u00a0iOS \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 AVAudioPlayer. \u041e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 AVFoundation, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u00a0\u043d\u0435\u0433\u043e using.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043a\u043e\u0434 \u0445\u044d\u043b\u043f\u0435\u0440\u0430, \u0443\u043f\u0440\u043e\u0449\u0430\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u00a0\u044d\u0442\u0438\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u043c.<\/p>\n<p><input id=\"button_ios_avaudioplayer\" type=\"button\" onclick=\"toggle(cut_ios_avaudioplayer, button_ios_avaudioplayer)\" 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_avaudioplayer\" style=\"display: none;\" displayOld=\"\"><p><\/p>\n<p><br><\/p>\n<pre class=\"e2-text-code\"><code>\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u0425\u044d\u043b\u043f\u0435\u0440, \u0443\u043f\u0440\u043e\u0449\u0430\u044e\u0449\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u043b\u0435\u0439\u0435\u0440\u043e\u043c (\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u0438\u0441\u0438\u0442 \u043e\u0434\u0438\u043d \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043b\u0435\u0439\u0435\u0440)\r\n\/\/\/ &lt;\/summary&gt;\r\npublic static class PlayerHelper\r\n{\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043b\u0435\u0439\u0435\u0440\u0430\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public enum PlayerState\r\n    {\r\n        Uncknown,\r\n        Playing,\r\n        Stopped,\r\n        Paused\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043b\u0435\u0439\u0435\u0440\u0430\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;value&gt;The state.&lt;\/value&gt;\r\n    public static PlayerState State { get; private set; }\r\n\r\n    private static AVAudioPlayer _player;\r\n    public static AVAudioPlayer Player { get{ return _player; } }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0438\u043b\u0438 \u043d\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u0446\u0438\u043a\u043b\u0438\u0432\u0430\u043d\u0438\u044f\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;value&gt;&lt;c&gt;true&lt;\/c&gt; if is infinite playing; otherwise, &lt;c&gt;false&lt;\/c&gt;.&lt;\/value&gt;\r\n    public static bool IsInfinitePlaying\r\n    {\r\n        get{ return _player != null ? _player.NumberOfLoops == int.MaxValue : false; }\r\n        set\r\n        {\r\n            if (_player == null)\r\n            {\r\n                return;\r\n            }\r\n\r\n            _player.NumberOfLoops = value ? int.MaxValue : 0;\r\n        }\r\n    }\r\n\r\n    static PlayerHelper()\r\n    {\r\n        State = PlayerState.Uncknown;\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u041f\u0440\u043e\u0438\u0433\u0440\u0430\u0442\u044c URL \u0441 \u0434\u0438\u0441\u043a\u0430 (\u0435\u0441\u043b\u0438 \u043e\u043d \u0443\u0436\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0441\u044f \u0441 \u043c\u0435\u0441\u0442\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;returns&gt;The URL.&lt;\/returns&gt;\r\n    \/\/\/ &lt;param name=&quot;url&quot;&gt;URL.&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=&quot;finishedPlayingAction&quot;&gt;Finished playing action.&lt;\/param&gt;\r\n    public static AVAudioPlayer PlayUrl(NSUrl url, Action finishedPlayingAction = null)\r\n    {\r\n        \/\/\u0432 \u0442\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u043f\u043b\u0435\u0439\u0435\u0440 \u0443\u0436\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 url - \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u0438\u043b\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441\u043d\u0430\u0447\u0430\u043b\u0430\r\n        if (IsPlayerLoadedThisFile(url))\r\n        {\r\n            ResumePlaying();\r\n            return _player;\r\n        }\r\n\r\n        StopPlaying();\r\n\r\n        _player = AVAudioPlayer.FromUrl(url);\r\n        _player.CurrentTime = 0;\r\n        _player.Volume = 1f;\r\n\r\n        if (finishedPlayingAction != null)\r\n        {\r\n            _player.FinishedPlaying += (sender, e) =&gt;\r\n            {\r\n                finishedPlayingAction.Invoke();\r\n            };\r\n        }\r\n\r\n        _player.PrepareToPlay();\r\n\r\n        \/\/\u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0432 \u0431\u0435\u043a\u0433\u0440\u0430\u0443\u043d\u0434\u0435\r\n        AVAudioSession.SharedInstance().SetCategory(AVAudioSessionCategory.Playback);\r\n        AVAudioSession.SharedInstance().SetActive(true);\r\n        UIApplication.SharedApplication.BeginReceivingRemoteControlEvents();\r\n\r\n        _player.Play();\r\n\r\n        State = PlayerState.Playing;\r\n\r\n        return _player;\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u041f\u0440\u043e\u0438\u0433\u0440\u0430\u0442\u044c\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public static void Play()\r\n    {\r\n        if (_player == null)\r\n        {\r\n            return;\r\n        }\r\n\r\n        _player.Play();\r\n        State = PlayerState.Playing;\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public static void StopPlaying()\r\n    {\r\n        if (_player == null)\r\n        {\r\n            return;\r\n        }\r\n\r\n        _player.Stop();\r\n        State = PlayerState.Stopped;\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u041f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public static void PausePlaying()\r\n    {\r\n        if (_player == null)\r\n        {\r\n            return;\r\n        }\r\n\r\n        _player.Pause();\r\n        State = PlayerState.Paused;\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public static void ResumePlaying()\r\n    {\r\n        if (_player == null)\r\n        {\r\n            return;\r\n        }\r\n\r\n        _player.Play();\r\n        State = PlayerState.Playing;\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442\u0438\u0442 true, \u0435\u0441\u043b\u0438 \u043f\u043b\u0435\u0439\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b \u0444\u0430\u0439\u043b \u043f\u043e \u044d\u0442\u043e\u043c\u0443 URL \u0441 \u0434\u0438\u0441\u043a\u0430\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;returns&gt;&lt;c&gt;true&lt;\/c&gt; if is player loaded this file the specified url; otherwise, &lt;c&gt;false&lt;\/c&gt;.&lt;\/returns&gt;\r\n    \/\/\/ &lt;param name=&quot;url&quot;&gt;URL.&lt;\/param&gt;\r\n    public static bool IsPlayerLoadedThisFile(NSUrl url)\r\n    {\r\n        if (_player == null)\r\n        {\r\n            return false;\r\n        }\r\n\r\n        return _player.Url.LastPathComponent == url.LastPathComponent;\r\n    }\r\n}<\/code><\/pre><p><\/br><\/p>\n<p>\u0422\u0430\u043a\u00a0\u0436\u0435 \u043f\u0440\u0438\u00a0\u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 (\u0435\u0441\u043b\u0438 \u0432\u00a0info.plist \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u00a0\u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0430\u0443\u0434\u0438\u043e \u0432\u00a0\u0431\u0435\u043a\u0433\u0440\u0430\u0443\u043d\u0434\u0435) \u043d\u0430\u00a0\u0433\u043b\u0430\u0432\u043d\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u00a0\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0430\u00a0\u0442\u0430\u043a\u00a0\u0436\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c. \u0427\u0442\u043e\u0431\u044b \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0430\u0441\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u00a0\u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u043a\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<p><\/br><\/p>\n<pre class=\"e2-text-code\"><code>MPNowPlayingInfo info = new MPNowPlayingInfo();\r\ninfo.Title = &quot;\u0418\u043c\u044f \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438&quot;;\r\ninfo.Artist = &quot;\u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0440\u0442\u0438\u0441\u0442\u0430&quot;;\r\n\r\ninfo.PlaybackRate = 1f;\r\ninfo.PlaybackDuration = PlayerHelper.Player.Duration;\r\ninfo.ElapsedPlaybackTime = PlayerHelper.Player.CurrentTime;\r\n\r\nMPNowPlayingInfoCenter.DefaultCenter.NowPlaying = info;<\/code><\/pre><\/div>","date_published":"2016-01-18T23:11:20+03:00","date_modified":"2016-01-18T23:11:16+03:00","_date_published_rfc2822":"Mon, 18 Jan 2016 23:11:20 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/rabota-s-avaudioplayer-i-mpnowplayinginfo-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":"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":"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":"19","url":"http:\/\/bibobo.ru\/all\/preobrazovanie-fayla-interfeysa-storyboard-iz-formata-ekrana-iph\/","title":"\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Storyboard \u0438\u0437\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 iPhone \u0432\u00a0iPad","content_html":"<p>\u0420\u0430\u043d\u043e \u0438\u043b\u0438\u00a0\u043f\u043e\u0437\u0434\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\u044f \u043f\u043e\u0434\u00a0iPhone \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u00a0iPad. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e\u0434\u00a0\u043f\u043b\u0430\u043d\u0448\u0435\u0442 \u0441\u00a0\u043d\u0443\u043b\u044f \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u043c \u043f\u043e\u00a0\u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u00a0\u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u0434\u0435\u043b\u043e\u043c.<\/p>\n<p><br\/><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0442\u0440\u0443\u0434 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0441\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0434\u043b\u044f\u00a0iPad \u0438\u0437\u00a0\u0444\u0430\u0439\u043b\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 iPhone. \u0414\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\u0438\u0435 \u0448\u0430\u0433\u0438:<\/p>\n<p><br\/><\/p>\n<ol start=\"1\">\n<li>\u0414\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b <i>MainStoryboard_iPhone.storyboard<\/i> \u0438\u00a0\u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0434\u0443\u0431\u043b\u044c \u0432\u00a0<i>MainStoryboard_iPad.storyboard<\/i><\/li>\n<li>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0448 \u0444\u0430\u0439\u043b \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SublimeText2) \u0438\u00a0\u0438\u0449\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442: <i>targetRuntime=\u00abiOS.CocoaTouch\u00bb<\/i>, \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432\u00a0\u043a\u043e\u043d\u0446\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <i>\u201c.iPad\u201d<\/i>, \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a: <i>targetRuntime=\u00abiOS.CocoaTouch.iPad\u00bb<\/i><\/li>\n<li>\u0414\u0430\u043b\u0435\u0435 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0435\u0433 <i>\u201csimulatedScreenMetrics\u201d<\/i> \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0432\u00a0\u043d\u0435\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <i>\u201ctype\u201d<\/i> \u0441\u043e\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <i>\u201cretina4\u201d<\/i><\/li>\n<li>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c\u0441\u044f \u0430\u0432\u0442\u043e\u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u043f\u043e\u00a0\u0444\u0430\u0439\u043b\u0443 \u0438\u00a0\u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0448\u0438\u0440\u0438\u043d \u0438\u00a0\u0432\u044b\u0441\u043e\u0442 \u044d\u043a\u0440\u0430\u043d\u0430 iPhone \u043d\u0430\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u043a\u0440\u0430\u043d\u0430 iPad (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 width=\u00ab320\u00bb => width=\u00ab768\u00bb, height=\u00ab568\u00bb => height=\u00ab1024\u00bb)<\/li>\n<li>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c <i>Storyboard<\/i>, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0435\u0435 \u0432\u00a0Interface Builder, \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u044d\u043a\u0440\u0430\u043d\u043e\u0432 \u0438\u00a0\u043b\u044d\u0439\u0430\u0443\u0442\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<br \/>\n<br\/><\/li>\n<\/ol>\n<p>\u0422\u0430\u043a\u0438\u043c \u043d\u0435\u00a0\u0445\u0438\u0442\u0440\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f\u00a0iPad \u0438\u0437\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 iPhone.<\/p>\n","date_published":"2015-11-11T00:15:22+03:00","date_modified":"2015-11-11T00:14:18+03:00","_date_published_rfc2822":"Wed, 11 Nov 2015 00:15:22 +0300","_rss_guid_is_permalink":"true","_rss_guid":"http:\/\/bibobo.ru\/all\/preobrazovanie-fayla-interfeysa-storyboard-iz-formata-ekrana-iph\/","_e2_data":{"is_favourite":false,"links_required":[],"og_images":[]}}],"_e2_version":3254,"_e2_ua_string":"E2 (v3254; Aegea)"}