рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдиреЛрдЯреЙрдХ рдУрдкрдирд╕реЛрд░реНрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп

рдЦреИрд░, рдЖрдЦрд┐рд░рдХрд╛рд░, рдореИрдВрдиреЗ рдЕрдкрдиреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рдФрд░ рд╕реБрд▓рдн рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рддред рдЗрд╕реЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдореЗрдВ рдмрджрд▓ рджреЗрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдмреЗ рдкрд░ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдЖрдЧреЗ, рд╣рдо iOS рдореЗрдВ рдореЛрдиреЛрдЯрдЪ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ ред рд╡рд┐рд╖рдп рдореЗрдВ, рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдирд╣реАрдВ рджреВрдВрдЧрд╛; рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЧреАрдерд╣рдм рдкрд░ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЬрдЯрд┐рд▓ рдореБрджреНрджреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред


рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХрдИ рдЖрдИрдУрдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдореЛрдиреЛрдЯреЛрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЪреБрдиреМрддреА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдФрд░ рдореБрдЭреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЖрдИрдУрдПрд╕ рдореЗрдВ рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдП рдЧрдП рдорд╛рдирдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж (рдиреАрдЪреЗ рджреА рдЧрдИ рддреБрд▓рдирд╛ рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВ), рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдореЗрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд┐рдЦрдирд╛ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИред рдореИрдВ рддреБрд░рдВрдд рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдИ рдереА, рддреЛ рдЖрдИрдУрдПрд╕ 5 рдЕрднреА рддрдХ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рд╣рд╛рде рдореЗрдВ рдирдпрд╛ рдкреЗрдЬрдХрдВрдЯреНрд░реЛрд▓ рдШрдЯрдХ рдирд╣реАрдВ рдерд╛ред

рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ рдзреИрд░реНрдп (рдХреЙрдлреА рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ) рдкрд░ рд╕реНрдЯреЙрдХ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдЕрдкрдиреА рдЙрддреНрдХреГрд╖реНрдЯ рдХреГрддрд┐ рдмрд╛рдЗрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рд╛ред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛:

рдмреЗрд╢рдХ, рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╕рдордп рдирд╣реАрдВ рдерд╛ рдпрд╛ рд╡рд╣ рдЕрдкрдиреЗ рд╕рднреА рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд╢рд╛рдпрдж рдЙрд╕рдХреЗ рд╣рд╛рде рдХрд┐рд╕реА рджрд┐рди рдмрд╛рдж рдореЗрдВ рдкрд╣реБрдВрдЪреЗрдВрдЧреЗред рд▓рд┐рдВрдХ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рд╛рдордЧреНрд░реА, рд╕рд╛рде рд╣реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЦреЛрдЬ, рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред

рдкреЗрдЬ рдЯрд░реНрдирд┐рдВрдЧ


рдкрд╣рд▓рд╛ рдФрд░ рд╢рд╛рдпрдж рдореБрдЦреНрдп рдкреНрд░рд╢реНрди рдпрд╣ рдерд╛ рдХрд┐ рджреГрд╢реНрдп рдкреГрд╖реНрда рдореЛрдбрд╝ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, PageControl рдШрдЯрдХ рдЕрднреА рддрдХ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрдХ рдмрдбрд╝реЗ рдХрдВрдЯреЗрдВрдЯ рдПрд░рд┐рдпрд╛ рдФрд░ рдЙрд╕рдореЗрдВ рдХрдИ рд╡реНрдпреВ рдХреЗ рд╕рд╛рде рд╕реНрдЯреИрдВрдбрд░реНрдб рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рдХрдИ рд╡реНрдпреВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдм рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ рдХрд┐ рдореЛрдбрд╝ рдкрд░ рдкреНрд░рднрд╛рд╡ рд╣реЛрддрд╛ рд╣реИ)ред рдЖрдкрдХреЛ рдХрд┐рддрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА? рдЙрддреНрддрд░ рд╕рд░рд▓ рд╣реИ - рддреАрди (рдкрд┐рдЫрд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ, рд╡рд░реНрддрдорд╛рди рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛, рдЕрдЧрд▓реЗ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рддреАрд╕рд░рд╛)ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреНрд╖реЗрддреНрд░ 3 рд╣реИред рджреЗрдЦреЗрдВред рдХреНрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдЯреНрд░рд┐рдкрд▓ рдкреЗрдЬ рд╡реНрдпреВ рдЪреМрдбрд╝рд╛рдИред



рдореИрдВрдиреЗ рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдкреГрд╖реНрда рдореЛрдбрд╝ рд▓рд╛рдЧреВ рдХрд┐рдПред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдк рд╡рд░реНрддрдорд╛рди рджреГрд╢реНрдп рдХреЛ рдмрд╛рдИрдВ рдпрд╛ рдКрдкрд░ (рдЖрдЧреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рджрд╛рдИрдВ рдУрд░ рдпрд╛ рдиреАрдЪреЗ (рд╡рд╛рдкрд╕ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдЦреАрдВрдЪрддреЗ рд╣реИрдВред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рд░рд▓ рд╣реИред рдпрд╣ рд╕рд╛рд░рд╛ рд╡реНрдпрд╡рд╕рд╛рдп UIScrollViewController рдХреЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА DocumentViewController рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рджреГрд╢реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪреА (рд╕рд░рдгреА рдирд╣реАрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╡рд░реНрддрдорд╛рди рджреГрд╢реНрдп рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп (рдЬрдм рдЕрдЧрд▓рд╛ рдкреГрд╖реНрда рдкрд╣рд▓рд╛ рдпрд╛ рдЕрдВрддрд┐рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ), рдПрдХ рдирдпрд╛ рджреГрд╢реНрдп рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рдкреАрдбреАрдПрдл рдкреГрд╖реНрда рдХреЛ рдирдП рджреГрд╢реНрдп рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдкреНрд░рдпреБрдХреНрдд рджреГрд╢реНрдп (рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓рд╛) рд╕реВрдЪреА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, SrollView.Position рдХреЛ рдХреЗрдВрджреНрд░реАрдп рдкреНрд░рджрд░реНрд╢рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рджреГрд╢реНрдп рд╕реВрдЪреА рдореЗрдВ рджреВрд╕рд░рд╛ред

public virtual void OpenDocumentPage(int pageNumber) { if (PDFDocument.DocumentHasLoaded && (pageNumber != PDFDocument.CurrentPageNumber)) { if ((pageNumber < 1) || (pageNumber > PDFDocument.PageCount)) { return; } // Set current page PDFDocument.CurrentPageNumber = pageNumber; // Calc min, max page int minValue; int maxValue; if (PDFDocument.PageCount <= MaxPageViewsCount) { minValue = 1; maxValue = PDFDocument.PageCount; } else { minValue = PDFDocument.CurrentPageNumber - 1; maxValue = PDFDocument.CurrentPageNumber + 1; if (minValue < 1) { minValue++; maxValue++; } else if (maxValue > PDFDocument.PageCount) { minValue--; maxValue--; } } // Create/update page views for displayed pages var unusedPageViews = new List<PageView>(mPageViews); RectangleF viewRect = GetScrollViewSubViewFrame(); for (int i = minValue, j = 0; i <= maxValue; i++,j++) { PageView pageView = mPageViews.FirstOrDefault(v => v.PageNumber == i); if (pageView == null) { pageView = new PageView(viewRect, i); mScrollView.AddSubview(pageView); mPageViews.Add(pageView); } else { pageView.Frame = viewRect; pageView.PageNumber = i; pageView.ZoomReset(); unusedPageViews.Remove(pageView); } viewRect = CalcFrameForNextPage(viewRect); if (i == PDFDocument.CurrentPageNumber) { mCurrentPageView = pageView; } } // Clear unused page views foreach (var view in unusedPageViews) { view.RemoveFromSuperview(); mPageViews.Remove(view); } // Update scroll view content offset UpdateScrollViewContentOffset(); } } 


рдкреГрд╖реНрда рдХрд╛ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ




рдкреГрд╖реНрда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рджреГрд╢реНрдп рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреАрди рджреГрд╢реНрдп рд╣реИрдВ:

рдкреЗрдЬ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╡реНрдпреВ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рджреВрд╕рд░реА - рдкреЗрдЬ рдХреА рд╣рд╛рдИ-рдХреНрд╡рд╛рд▓рд┐рдЯреА рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдП, рддреАрд╕рд░реА - рдкреЗрдЬ рдХреА рдЕрд╕реНрдерд╛рдпреА рдЗрдореЗрдЬ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реЛрддреА рд╣реИред

рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдкреГрд╖реНрда рдХреЗ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП, CATiledLayer рд╡рд░реНрдЧ рдХреЗ рд╡рдВрд╢рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдХреНрд▓рд╛рд╕ рдЖрдкрдХреЛ рд╡реНрдпреВ рдкрд░ рдЬреВрдо рдХрд░рддреЗ рд╣реБрдП рд╡рд┐рд╕реНрддреГрдд рдХрдВрдЯреЗрдВрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдЖрдкрдХреЛ рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - CATiledLayer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреГрд╖реНрда рдХрд╛ рдПрдХ рдмрд╣реБрдд рд▓рдВрдмрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди (рдХреБрдЫ рд╕реЗрдХрдВрдб) рд╣реЛ рдЧрдпрд╛, рдЬрд┐рд╕рд╕реЗ рдПрдХ рдирдИ рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреА рддрд╕реНрд╡реАрд░ рдХрд╛ рдЕрдкреНрд░рд┐рдп рдЪрдВрдЪрд▓ рдФрд░ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реЛ рдЧрдпрд╛ред рдЗрд╕ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдФрд░ рджреГрд╢реНрдп рдЬреЛрдбрд╝рд╛ - ThumbView, рдЬрд┐рд╕рдиреЗ рдПрдХ рдХрдо-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкреАрдбреАрдПрдл рдкреГрд╖реНрда рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдкреГрд╖реНрда рдХреА рдореБрдЦреНрдп рдЫрд╡рд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЖрдЙрдЯрдкреБрдЯ:

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡рдпрдВ рдкреАрдбреАрдПрдл рдкреГрд╖реНрда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:

 private void Draw(CGContext context) { if (!PDFDocument.DocumentHasLoaded) { return; } // Draw page context.SetFillColor(1.0f, 1.0f, 1.0f, 1.0f); using (CGPDFPage pdfPage = PDFDocument.GetPage(mPageNumber)) { context.TranslateCTM(0, Bounds.Height); context.ScaleCTM(1.0f, -1.0f); context.ConcatCTM(pdfPage.GetDrawingTransform(CGPDFBox.Crop, Bounds, 0, true)); context.SetRenderingIntent(CGColorRenderingIntent.Default); context.InterpolationQuality = CGInterpolationQuality.Default; context.DrawPDFPage(pdfPage); } } 


рдмреБрдХрдорд╛рд░реНрдХ рдФрд░ рдиреЛрдЯреНрд╕



рдЬрдм рдХрд┐рд╕реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдмреБрдХрдорд╛рд░реНрдХ рдФрд░ рдиреЛрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ (рдкреНрд░рдмрдВрдзрдХ) рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдбреЗрдЯрд╛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛: xml, рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕, рдЖрджрд┐ рдореЗрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдПрдХ Sqlite рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмреБрдХрдорд╛рд░реНрдХ рдФрд░ рдиреЛрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВред рдбреЗрдореЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдбреЗрдЯрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИред

рджрд░рдЕрд╕рд▓, рджреЛрдиреЛрдВ рдореИрдиреЗрдЬрд░ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рдЙрдирдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ, рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЖрднрд╛рд╕реА рд╣реИрдВред рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдХреНрд░рдорд╢рдГ DocumentBookmark рдФрд░ DocumentNote рдХреЗ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпреЛрдВрдХрд┐, рдореЛрдиреЛрдЯреЙрдХ рдореЗрдВ рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдЬреИрд╕реА рдХреЛрдИ рдЕрджреНрднреБрдд рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ, рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХрд╛ рддрдВрддреНрд░, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдПрдХ ObjectActivator рд╡рд░реНрдЧ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рддреНрд╡рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рдкреНрд░рдмрдВрдзрдХ рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯрдПрдХреНрдЯреАрд╡реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

 public class MyObjectsActivator : ObjectsActivator { /// <summary> /// Returns DocumentNoteManager instance /// </summary> /// <returns></returns> protected override DocumentNoteManager CreateDocumentNoteManager() { return new MyDocumentNoteManager(); } /// <summary> /// Returns DocumentBookmarkManager instance /// </summary> /// <returns></returns> protected override DocumentBookmarkManager CreateDocumentBookmarkManager() { return new MyDocumentBookmarkManager(); } } 


рдкреЗрдЬ рдердВрдмрдиреЗрд▓




рдкреГрд╖реНрда рдердВрдмрдиреЗрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдпрдВ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдХрд┐ рдердВрдмрдиреЗрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреГрд╖реНрда рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдирдП рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдоред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдердВрдмрдиреЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп рд╕рд╛рдордЧреНрд░реА рдХреНрд╖реЗрддреНрд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕рднреА рдкреГрд╖реНрда рдердВрдмрдиреЗрд▓ рдкреНрд▓рд╕ рдкреИрдбрд┐рдВрдЧ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХрд╛ рдпреЛрдЧ рд╣реИред

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рдердВрдмрдиреЗрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рдерд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд┐рд╕рдореЗрдВ рдердВрдмрдиреЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдердВрдмрдиреЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧреА, рд╕рд╛рде рд╣реА рдмрд╛рдИрдВ рдУрд░ рдПрдХ рдФрд░ рджрд╛рдИрдВ рдУрд░ рдПрдХ (рдпрд╛рдиреА, рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреГрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИ)ред рдЙрд╕реА рд╕рдордп, рддреЗрдЬреА рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП, рдЖрдВрджреЛрд▓рди рдХреЗ рд╡рд┐рдкрд░реАрдд рдХрд┐рдирд╛рд░реЗ рдкрд░ рд╕реНрдерд┐рдд рдЕрдзрд┐рдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдердВрдмрдиреЗрд▓ (рдпрд╛рдиреА рдЫрд┐рдкрд╛ рд╣реБрдЖ) рд╣рдЯрд╛рдП рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЖрдВрджреЛрд▓рди рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЪрд▓реЗ рдЧрдПред рдпрд╛рдиреА рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рдЪрдХреНрд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░ рджреЗрдЧрд╛ред рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рддреНрдпрд╛рдЧрдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рддреЗрдЬрд╝ рдердВрдмрдиреЗрд▓ рд╕реНрдХреНрд░реЙрд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдХреНрд░реЙрд▓ рдХреА рдЧрдИ рдШрдЯрдирд╛ рдХреЛ 100 рдпрд╛ рдЕрдзрд┐рдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдердВрдмрдиреЗрд▓ рдХреЗ рдмреАрдЪ "рдЕрдВрддрд░рд╛рд▓" рд╣реЛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреНред рдЙрдирдХреЗ рдЧрд▓рдд рд╕реНрдерд╛рди рдкрд░ред

рдирддреАрдЬрддрди, рдореИрдВ "рдмрдлрд░" рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рдмрд╕ рдЧрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдердВрдмрдиреЗрд▓ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рддрднреА рднрд░рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдмрдлрд░ рднрд░рд╛ рд╣реЛрддрд╛ рд╣реИред рдмрдлрд░ рдХрд╛ рдЖрдХрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдмреЗрд╢рдХ, рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рдХреЗ рдХрд╛рд░рдг)ред

рдкрд░рд┐рдгрд╛рдо


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рдм, рдпрджрд┐ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди / рдЯрд┐рдкреНрдкрдгреА / рд╕реБрдЭрд╛рд╡ рд╣реИрдВ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рдореИрдВ рдЦреБрд╢реА рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛ (рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ)ред


GitHub рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕реНрд░реЛрдд: github.com/AlexanderMac/mTouch-PDFReader

Source: https://habr.com/ru/post/In142941/


All Articles