рдРрдк рд╕реНрдЯреЛрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдирд┐рдЬреА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдИрдУрдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рд╕рд╛рдордирд╛ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐, рдПрдкреНрдкрд▓ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдпрд╣ рдЕрдХреНрд╕рд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рддрд░реАрдХреЗ рдирд┐рдЬреА рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (Apple рд╕рдореАрдХреНрд╖рд╛ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкреИрд░рд╛ 2.5)ред



рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдПред


рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдмрдбрд╝реЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЛ рдЫрд┐рдкрд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХреБрдЫ рдирд┐рд╖рд┐рджреНрдз (рдмреНрд▓реВрдЯреВрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдзрд┐ рдорд╛рдирдХ рдпреВрдЖрдИ рдФрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рд╕рд╣реАред

рддреЛ, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо UISwitch рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди iOS 4 рдкрд░ (iOS 5 рдореЗрдВ tintColor рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛)ред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

[testSwitch setAlternateColors:true]; 

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдзрд┐ UISwitch рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рд░рдирдЯрд╛рдЗрдо рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЫрд┐рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ

рдЗрд╕рд▓рд┐рдП, рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдХрджрдо-рджрд░-рдЪрд░рдг рдирд┐рд░реНрджреЗрд╢:
  1. NSString рдХреЛ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд░рдЦрдирд╛ рддрд╛рдХрд┐ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЗрд╕рдХреЗ рдирд╛рдо рдХреЛ рдЗрд╕рдХреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдореЗрдВ рдиреЛрдЯрд┐рд╕ рди рдХрд░реЗрдВ:
     NSString *nameOfMethod = @тАЭтАЭ; for (NSString *s in [NSArray arrayWithObjects:@"set",@"Alt",@"ernate",@"Colors:",nil]) nameOfMethod = [nameOfMethod stringByAppendingString:s]; const char *nameOfMethodUTF8 = [nameOfMethod UTF8String]; 

  2. рд╣рдо UISwitch рддрд░реАрдХреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ:
      SEL methodSel = nil; Method *methods = class_copyMethodList([UISwitch class], &count); i = 0; while(i < count) { SEL s = method_getName(methods[i]); if (0 == strcmp(sel_getName(s), methodNameUTF8String)) { methodSel = s; i = count; } } 

  3. рд╣рдо рдЗрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ (testSwitch):
     if (methodSel != nil) { IMP m_imp = method_getImplementation(methodsList[i]); m_imp(theSwitch, methodSel, YES); } free(methods); 


рд╡реЛрдЗрд▓рд╛, рд╣рдордиреЗ рдЗрд╕ рд╕реАрдорд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ Apple рдиреЗ рдЗрд╕реЗ рдХреНрдпреЛрдВ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ред

рдкреБрдирд╢реНрдЪ: рдЖрдк рдирд┐рдЬреА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдк рд╕реНрдХреИрдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

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


All Articles