
рд▓реЗрдЦ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рдмрддрд╛рдПрдЧрд╛ рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕рдВрд╡рд░реНрдзрд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдЪрд┐рдк рдХреЗ рд╕рд╛рде рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдПрдЖрд░ рдЖрд╡реЗрджрди рд▓рд┐рдЦрдиреЗ рдХреЗ рдХрд░реАрдм рд╣реИрдВред
рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕
рдереЛрдбрд╝рд╛ рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░ - рдПрдЖрд░ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЗрддрдирд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрдпреЛрдВ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдПрдХ рдмрд╛рд░, рд╢рд╛рдпрдж рдкрд┐рдЫрд▓реА рд╢рддрд╛рдмреНрджреА рдХреЗ рд╢реБрд░реБрдЖрддреА 80 рдХреЗ рджрд╢рдХ рдореЗрдВ, рдПрдХ рд╡рд┐рдорд╛рди рдХреЗ рд▓рд▓рд╛рдЯ рдЧреНрд▓рд╛рд╕ рдкрд░ рд╕реАрдзреЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯрд░ рдХреЛ рд╕реИрдиреНрдп рд▓рдбрд╝рд╛рдХреВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрдХ -41 - рдПрдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдЯреЗрдХ-рдСрдл рдлрд╛рдЗрдЯрд░) рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛ред рдкрд╛рдпрд▓рдЯ рдирд╡рд╛рдЪрд╛рд░ рд╕реЗ рдмрд╣реБрдд рдЦреБрд╢ рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдПрдирд╛рд▓реЙрдЧ, рдпрджреНрдпрдкрд┐ рдбрд┐рдЬрд┐рдЯрд▓, рд╕реЗрдВрд╕рд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ред
рдпрд╣ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдЬрд╛рдирддреЗ рд╣реИрдВ (рд╣рдорд╛рд░реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдкрд┐рддрд╛ рдиреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛ рдерд╛) рдЬреЛ 1992 рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА, рд╕реЛрд╡рд┐рдпрдд рд╕реБ -27 рдореЗрдВ рдкреНрд░рдмреБрджреНрдз рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХрддрд╛рдИ рд╡рд┐рдорд╛рди рдХреЗ 3 рдбреА рдореЙрдбрд▓ рдереЗред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЗрдВрдЬрди рдХреЛ 4 MHz рдкреНрд░реЛрд╕реЗрд╕рд░ (8086) рдкрд░ рдЕрд╕реЗрдВрдмрд▓рд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЕрдореЗрд░рд┐рдХрд┐рдпреЛрдВ рдиреЗ 66 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд╕реЗ 80486 рдкрд░ рдПрдХ рдХреНрд░реЗрдХ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдХреЛрдб рд╣рдореЗрд╢рд╛ рд▓рд┐рдЦрдирд╛ рдЬрд╛рдирддрд╛ рдерд╛ред
рдмрд╛рдж рдореЗрдВ, рд╡рд╣реА ILS (рд╡рд┐рдВрдбрд╢реАрд▓реНрдб рдЗрдВрдбрд┐рдХреЗрдЯрд░реНрд╕) рдирд╛рдЧрд░рд┐рдХ рдЙрдбреНрдбрдпрди рдореЗрдВ рдЖрдпрд╛, рдФрд░ 1990 рдореЗрдВ рдмреЛрдЗрдВрдЧ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ "рдСрдЧрдореЗрдВрдЯреЗрдб рд░рд┐рдпрд▓рд┐рдЯреА" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ред
рдмрд╣реБрдд рдмрд╛рдж рдореЗрдВ, рдЬрдм рдПрдХреНрд╕реАрд▓реЗрд░реЛрдореАрдЯрд░ рдФрд░ рдЬрд╛рдЗрд░реЛрд╕реНрдХреЛрдк рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдореЗрдВ рдЖрдП, рдЙрдЬреНрдЬреНрд╡рд▓ рд╕рд┐рд░ рдЙрдиреНрд╣реЗрдВ рдХреИрдорд░реЗ рдФрд░ рдУрдкрдирдЬреАрдПрд▓ рдИрдПрд╕ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ - рдпрд╣ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдерд╛ рдЬреИрд╕реЗ рдХрдИ рдЧреЗрдо, рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рд╣рд╛рдпрдХ рдкреИрджрд╛ рд╣реБрдП рдереЗ, рд▓реЗрдХрд┐рди рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрдЬрдЯ рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ рдФрд░ рдкреНрд░рдЪрд╛рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдкрддреНрд░рд┐рдХрд╛ рд╕реЗ рдШрдбрд╝реА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЗрдкрд░ рдлреНрд░реЗрдо рдХреЛ рдХрд╛рдЯрдХрд░, рдЙрд╕рдХреЗ рд╣рд╛рде рдкрд░ рд░рдЦрдХрд░ рдФрд░ рдлреЛрди рдХреЗ рдХреИрдорд░реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрдиреЗ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рднреА рдмреНрд░рд╛рдВрдб рдХреА рдШрдбрд╝рд┐рдпреЛрдВ рдкрд░ "рдХреЛрд╢рд┐рд╢" рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкрддреНрд░рд┐рдХрд╛ рдХрд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд░рддреА рд╣реИрдВред
рдЕрдм рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рддрдХрдиреАрдХреА рд╣рд┐рд╕реНрд╕рд╛, рдЙрди рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдореБрдарднреЗрдбрд╝ рдХрд░реЗрдВрдЧреЗред
рдЖрдИрдУрдПрд╕
IPhone рдФрд░ iPad рдХреЗ рд▓рд┐рдП iOS рд╕рдВрд╕реНрдХрд░рдг рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реИрдВред рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рддрдереНрдп рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ iPad OS рдкрд░ рдХреИрдорд░реЗ рд╕реЗ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛ (UIImagePicker) рдПрдХ рдирд┐рдпрдорд┐рдд UIView рд╣реИ, рдФрд░ iPhone OS рдкрд░ рдпрд╣ рдПрдХ UIViewController рд╣реИред рдЕрдЧрд░ рдЖрдИрдкреИрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рджреГрд╢реНрдп рдХреА рддрд░рд╣ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдИрдлреЛрди рдореЗрдВ рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ - рдЗрдореЗрдЬрдкрд┐рдХрд░ рд╡рд┐рдВрдбреЛ рдХреЛ рдореЛрдбрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреИрдорд░реЗ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рджреГрд╢реНрдп рдЬреЛрдбрд╝рдирд╛ рдХреЗрд╡рд▓ рдХреИрдорд░рд╛рд╡реЗрд░рд╡реЗрд▓ рд╡реНрдпреВ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрд╛рдиреА рдХреИрдорд░реЗ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреБрдЫ 3D рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:
imagePicker .cameraOverlayView = [[ARView new] autorelease];
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рдЖрдИрдУрдПрд╕ 3 рдФрд░ рдиреАрдЪреЗ рд╕реЗ рдмрдЪрд╛ рд╣реБрдЖ рдПрдирд╛рдХреНрд░реЛрд╕рд┐рдЬреНрдо рд╣реИред рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реЛрддреА рд╣реИ? рдкреВрд░реА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП:
- UIImagePickerController рд╕реНрдерд┐рддрд┐ рдкрдЯреНрдЯреА рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдПрдЖрд░ рдореЛрдб рд╕реЗ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреЗрдо рдореЗрдиреВред рдЕрдиреНрдпрдерд╛, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рднреА рджреГрд╢реНрдп 20 рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ;
- рдХреИрдорд░реЗ рд╕реЗ рдЫрд╡рд┐ рдХреЛ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдкрд░ рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдорд╛рдирдХ UIImagePicker рдХреЗ рддрд╣рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдиреАрдЪреЗ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рдеред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рджреЛ рд╡рд┐рдХрд▓реНрдк рдмрдЪреЗ рд╣реИрдВ: рдиреАрдЪреЗ рд╕реЗ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдЫрд╡рд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЫрд╡рд┐ рдЕрдиреБрдкрд╛рдд рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛;
- рдпрджрд┐ рдЖрдкрдХреЛ рдХреИрдорд░реЗ рдХреА рдЫрд╡рд┐ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрдЯрди рдХреЗ рдХреНрд▓рд┐рдХ рдкрд░ рдПрдХ рд╕реНрдерд┐рд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП, рддреЛ рдпрд╣ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ - рдЖрдкрдХреЛ рдЕрдкрдиреЗ рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рд╕реНрдерд┐рд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╕рд╛рде рджреГрд╢реНрдп рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, UIImagePickerCroller рдХреЛ рд╣рдЯрд╛рдПрдВ, рдУрд╡рд░рд▓реЗ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЖрдкрдХреЗ рджреГрд╢реНрдп рдореЗрдВ CameraOverlayView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдХрд░реЗрдВ рд╡рд░реНрддрдорд╛рди рдирдпрд╛ рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдХред рдпрд╣ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╕реНрдореГрддрд┐ рдореЗрдВ рджреГрд╢реНрдп рдХреЛ рди рдЦреЛрдПрдВ рдФрд░ рд╕рдордп рдкрд░ рдЕрдиреБрд░рдХреНрд╖рдг / рд░рд┐рд▓реАрдЬ рдХрд░реЗрдВ, рдпрд╛ рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдП рд░рдЦреЗрдВред рдпрд╣ рд╕рднреА рдХреЗ рдмрдЬрд╛рдп ImagePickerView.hidden = YES рд╣реИ; iPad рдХреЗ рд░реВрдк рдореЗрдВ, рдкреНрд▓рд╕ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдзреАрдорд╛ рд╣реИ;
- рдЖрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ UIButton рдХрд╛ рднреА рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдЖрд░ / рдЧреИрд░-рдПрдЖрд░ рдореЛрдб рдХреЗ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдХреЛ рд╡реНрдпреВрдХрдВрдЯреНрд░реЛрд▓рд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП UIButton рдХреА рдЕрдкрдиреА рдпреЛрдЬрдирд╛ рд╣реИред рдпрджрд┐ UIButton рдореЗрдВ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдерд╛ - ViewController, рддреЛ рд╡реНрдпреВ рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ imagePicker.cameraOverlayView рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛, рддреЛ рдпрд╣ рд╣реИрдВрдбрд▓рд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ UIButton рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрд╡рдЧрдд рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп ViewController рдЕрдм рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЫрд╡рд┐ рд╣рд░ рдЪреАрдЬ рдХреЗ рдКрдкрд░ рдПрдХ рдкрд┐рд╕рд░ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рднреЗрдЬрддреА рд╣реИред рдореБрдЭреЗ рдЖрдВрддрд░рд┐рдХ рджреГрд╢реНрдп рдХреЛ рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдкреЙрдЗрдВрдЯрд░ рджреЗрдирд╛ рдерд╛ рдФрд░ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдХреЛрдб рдЬреЛрдбрд╝рдирд╛ рдерд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рд╕реАрдзреЗ рдЦреАрдВрдЪ рд▓реЗрдЧрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рднреА рдорд╛рдирдХ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рджреГрд╢реНрдп рд╣реЛрдиреЗ рдкрд░ рдмреИрд╕рд╛рдЦреА рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣рдореЗрд╢рд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдПрдВрдбреНрд░реЙрдпрдб
рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде, рдЪреАрдЬреЗрдВ рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╣реИрдВред
рдХреИрдорд░рд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди, рдпрд╛ рдмрд▓реНрдХрд┐ рд╕рд░рдлреЗрд╕ рд╡реНрдпреВ, рдХреЛ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреЗ рджреГрд╢реНрдп рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рдЪреАрдЬ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдореЛрдбрд▓ рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрдирд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕реНрд╡рдпрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЖрдХрд╛рд░ (рдЖрдХрд╛рд░ рдХреА рд╕реВрдЪреА рдХрднреА-рдХрднреА рдмрдбрд╝реА рд╣реЛрддреА рд╣реИ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рднреА) рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдЗрд╖реНрдЯрддрдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдФрд░ рдЕрдиреБрдкрд╛рдд рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рд╣рдореЗрдВ рд╕рднреА рдЖрдХрд╛рд░реЛрдВ рдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдирдХреА рддреБрд▓рдирд╛ рджреГрд╢реНрдп рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рдЕрдиреБрдкрд╛рдд рд╕реЗ рдХрд░рдиреА рд╣реЛрдЧреА, рдЬрд╣рд╛рдБ рд╣рдо рдЗрд╕ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЛ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛ рдЖрдХрд╛рд░ рд╣рдореЗрд╢рд╛ SurfaceView рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЪрд┐рддреНрд░ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдФрд░ рд╕рд╣реА рдЖрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ ViewGroup рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╡рд╣рд╛рдВ SurfaceView рдХреЛ рд░рдЦреЗрдВ, рдФрд░ рдЧрдгрдирд╛ рдХрд░реЗрдВ рдХрд┐ onLayout рдкрджреНрдзрддрд┐ рдореЗрдВ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдХрд░реЗрдВред
рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд - рдЕрдЧрд░ рдЖрдИрдУрдПрд╕ рдореЗрдВ рдЖрдк рдХреИрдорд░реЗ рд╕реЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ 3 рдбреА рдореЙрдбрд▓ рдЦреАрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдиреАрдЪреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди (UIImagePicker) рд╣реИ, рдФрд░ рдлрд┐рд░ 3 рдбреА рдореЙрдбрд▓ рд╕рд╣рд┐рдд рдКрдкрд░ рд╕реЗ рдХрд┐рд╕реА рднреА рджреГрд╢реНрдп рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВред рдПрдВрдбреНрд░реЙрдЗрдб рдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдпрджрд┐ рдорд╛рдирдХ рдпреВрдЖрдИ рддрддреНрд╡реЛрдВ рдХреЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди (рд╕рд░рдлреЗрд╕ рд╡реНрдпреВ) рдХреЗ рдКрдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ GLSurfaceView рдореЗрдВ 3 рдбреА рдореЙрдбрд▓ рдХреЛ (!) рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЗ рддрд╣рдд рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдХрдИ рдмреЙрдбреА рдореВрд╡рдореЗрдВрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рднреВрддрд▓ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП, getHolder ()ред setType (SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS) рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ SURFACE_TYPE_PUSH_BUFFERS рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЕрд╡рдХреНрд░рдорд┐рдд рд╣реИред рдЗрд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдпрд╣ рдорд╛рди рдЕрдкрдиреЗ рдЖрдк рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред тАЭ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХреЙрд▓ рдХреЗ рдмрд┐рдирд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднреА рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ;
- GLSurfaceView рдореЗрдВ, рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдкрд╛рд░рджрд░реНрд╢реА рд╣реИ - getHolder ()ред SetFormat (PixelFormat.TRANSLUCENT)ред рдЗрд╕ рдХреЙрд▓ рдХреЗ рдмрд┐рдирд╛, рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдПрдЪрдЯреАрд╕реА рдбрд┐рдЬрд╝рд╛рдпрд░ рдПрд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛), рдпрд╛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (Google рдЧреИрд▓реЗрдХреНрд╕реАрдиреЗрдХреНрд╕рд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛)ред рд╢рд╛рдпрдж рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ GPU рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдпрд╣ рдПрдЖрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рддреБрд░рдВрдд рдЧреИрд░-рдПрдЖрд░ рдореЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ GLSurfaceView рдкрд╛рд░рджрд░реНрд╢реА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рддрд╣рдд рдЖрдк рдорд╛рдирдХ UI (рди рддреЛ ImageVIew рд╡рд┐рдЬреЗрдЯ, рдФрд░ рди рд╣реА GLSurfaceView рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реЗрдЯрдЬрд╝реЛрд░рдбрд░рдСрдирдЯреЙрдк (рдЯреНрд░реВ) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - GLSurfaceView рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдпрд╣ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ - рд╡реЗ рдиреАрдЪреЗ, рдКрдкрд░ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рджреГрд╢реНрдп рдореЗрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд░рд╛рд╕реНрддрд╛ рд╣реИ - рдЕрдЧрд░ рдХрд┐рд╕реА 3D рдореЙрдбрд▓ рдХреЗ рддрд╣рдд рдХреБрдЫ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреИрдорд░реЗ рд╕реЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдирд╣реАрдВ рд╣реИ, рддреЛ OpenGL ES рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЪрд┐рддреНрд░ рдХреЛ рдПрдХ рдмрдирд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рджреЛ рдкрдХреНрд╖реЛрдВ рдХреА рд╢рдХреНрддрд┐ рдХреЗ рдЧреБрдгрдХреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреБрди: рдЖрдХрд╛рд░ рджреЗрддрд╛ рд╣реИ (рдХреБрдЫ GPU рдкрд░ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рдмрд┐рдирд╛ рдпрд╛ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рдХреБрдЫ рдкрд░ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рдпрд╣ рдмрдирд╛рд╡рдЯ рдПрдХ рд╡рд┐рдорд╛рди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреА рдЬрд┐рд╕рдХрд╛ рдЖрдпрд╛рдо рджреГрд╢реНрдп рдкреЛрд░реНрдЯ рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рд╣рдо рдХреЗрд╡рд▓ рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рд╣реА рдЕрдиреБрдкрд╛рдд рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкрд╛рддреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
рдХреНрдпрд╛ рдирд┐рдХрд▓рддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг, рдЖрдк рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░
AppStore рдФрд░
Google Play рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ