Π ΠΈΡ. 1.57. ΠΠ½ΠΎΠΏΠΊΠ° Delete Account (Π£Π΄Π°Π»ΠΈΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ)
ΠΠ½ΠΎΠΏΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡΠ°ΠΌ (ΡΡΠΈΠ³Π³Π΅ΡΠ°ΠΌ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΎΠ΄Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ Π΅Π΅ ΠΏΠ°Π»ΡΡΠ΅ΠΌ, ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ β ΠΊΠΎΠ³Π΄Π° ΡΠ±ΠΈΡΠ°Π΅Ρ Ρ Π½Π΅Π΅ ΠΏΠ°Π»Π΅Ρ. ΠΡΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ, Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, β ΠΈΡ ΡΠ΅Π»ΡΠΌΠΈ. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π½Π°ΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π°:
#import Β«ViewController.hΒ»
@interface ViewController ()
@property (nonatomic, strong) UIButton *myButton;
@end
@implementation ViewController
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΡΠΎΡΠ° UIButton Π² iOS 7 ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ 44.0f ΠΏΡΠ½ΠΊΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ (ΡΠΈΡ. 1.58):
β (void) buttonIsPressed:(UIButton *)paramSender{
NSLog(@"Button is pressed.");
}
β (void) buttonIsTapped:(UIButton *)paramSender{
NSLog(@"Button is tapped.");
}
β (void)viewDidLoad{
[super viewDidLoad];
self.myButton = [UIButton buttonWithType: UIButtonTypeRoundedRect];
self.myButton.frame = CGRectMake(110.0f,
200.0f,
100.0f,
44.0f);
[self.myButton setTitle:@"Press Me"
forState: UIControlStateNormal];
[self.myButton setTitle:@"I'm Pressed"
forState: UIControlStateHighlighted];
[self.myButton addTarget: self
action:@selector(buttonIsPressed:)
forControlEvents: UIControlEventTouchDown];
[self.myButton addTarget: self
action:@selector(buttonIsTapped:)
forControlEvents: UIControlEventTouchUpInside];
[self.view addSubview: self.myButton];
}
Π ΠΈΡ. 1.58. Π ΡΠ΅Π½ΡΡΠ΅ ΡΠΊΡΠ°Π½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°
Π ΠΊΠΎΠ΄Π΅ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ setTitle: forState: ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π·Π°Π΄Π°Π²Π°Ρ Π΄Π»Ρ Π½Π΅Π΅ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ β ΡΡΠΎ Π½Π°Π΄ΠΏΠΈΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅. Π ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ : ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΠΈ ΡΡΠΎΠΏΠ»Π΅Π½Π½ΠΎΠΌ (Π½Π°ΠΆΠ°ΡΠΎΠΌ). Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π½Π°Π΄ΠΏΠΈΡΡ Π½Π° Π½Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π²ΠΈΠ΄ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΡ, Π½Π° Π½Π΅ΠΉ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Press Me (ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ). Π ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π°ΠΆΠΌΠ΅Ρ Π΅Π΅, Π½Π°Π΄ΠΏΠΈΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Π½Π° I'm Pressed (Π― Π½Π°ΠΆΠ°ΡΠ°).
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΈ Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ, ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ addTarget: action: forControlEvents:, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄Π²Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
β’ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΠΌΠΎΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ;
β’ Π΄ΡΡΠ³ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΆΠ΅ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΏΠ°Π»Π΅Ρ Ρ ΡΠΊΡΠ°Π½Π°. Π’Π°ΠΊΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ (touch-inside-up).
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π²Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΎ UIButton, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ ΡΠΈΠΏ. ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠ»Π°ΡΡΠ° buttonWithType Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅-ΠΏΡΠΈΠΌΠ΅ΡΠ΅. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° UIButtonType:
typedef NS_ENUM(NSInteger, UIButtonType) {
UIButtonTypeCustom = 0,
UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0),
UIButtonTypeRoundedRect,
UIButtonTypeDetailDisclosure,
UIButtonTypeInfoLight,
UIButtonTypeInfoDark,
UIButtonTypeContactAdd,
UIButtonTypeRoundedRect = UIButtonTypeSystem,
}
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ UIButtonTypeCustom. ΠΠ΄Π΅ΡΡ Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ» Π΄Π²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: ΠΎΠ΄Π½ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π° Π΄ΡΡΠ³ΠΎΠ΅ β Π΄Π»Ρ Π½Π°ΠΆΠ°ΡΠΎΠ³ΠΎ (ΡΡΠΎΠΏΠ»Π΅Π½Π½ΠΎΠ³ΠΎ). Π‘Π΅ΠΉΡΠ°Ρ Ρ ΡΠΎΠ·Π΄Π°ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ ΠΏΡΠΈΡΠ²ΠΎΡ Π΅ΠΉ Π΄Π²Π° ΡΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
UIImage *normalImage = [UIImage imageNamed:@"NormalBlueButton.png"];
UIImage *highlightedImage = [UIImage imageNamed:@"HighlightedBlueButton"];
self.myButton = [UIButton buttonWithType: UIButtonTypeCustom];
self.myButton.frame = CGRectMake(110.0f,
200.0f,
100.0f,
44.0f);
[self.myButton setBackgroundImage: normalImage
forState: UIControlStateNormal];
[self.myButton setTitle:@"Normal"
forState: UIControlStateNormal];
[self.myButton setBackgroundImage: highlightedImage
forState: UIControlStateHighlighted];
[self.myButton setTitle:@"Pressed"
forState: UIControlStateHighlighted];
ΠΠ° ΡΠΈΡ. 1.59 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ iOS. Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΌΠ΅ΡΠΎΠ΄ setBackgroundImage: forState:. Π Π°Π±ΠΎΡΠ°Ρ Ρ ΡΠΎΠ½ΠΎΠ²ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ setTitle: forState: Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° ΠΏΠΎΠ²Π΅ΡΡ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΡΡ ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½Π°Π΄ΠΏΠΈΡΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setImage: forState: ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
Π ΠΈΡ. 1.59. ΠΠ½ΠΎΠΏΠΊΠ° Ρ ΡΠΎΠ½ΠΎΠ²ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ
1.22. ΠΠΎΠΊΠ°Π· ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ UIImageView
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ UIImageView.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΠ»Π°ΡΡ UIImageView β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ Π² iOS SDK. ΠΠ°ΠΊ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΠΉ Π²ΠΈΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° UIImageView ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π΅Π³ΠΎ ΠΊ Π²Π°ΡΠΈΠΌ Π²ΠΈΠ΄Π°ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° Apple MacBook Air ΠΈ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π΅Π΅ Π² Π²ΠΈΠ΄Π΅ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠ°ΠΉΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°:
#import Β«ViewController.hΒ»
@interface ViewController ()
@property (nonatomic, strong) UIImageView *myImageView;
@end
@implementation ViewController
ΠΠ½ΡΡΠ°Π½ΡΠΈΡΡΠ΅ΠΌ Π²ΠΈΠ΄ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠΌ Π² Π½Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
β (void)viewDidLoad{
[super viewDidLoad];
UIImage *macBookAir = [UIImage imageNamed:@"MacBookAir"];
self.myImageView = [[UIImageView alloc] initWithImage: macBookAir];
self.myImageView.center = self.view.center;
[self.view addSubview: self.myImageView];
}
Π’Π΅ΠΏΠ΅ΡΡ, Π·Π°ΠΏΡΡΡΠΈΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ°ΠΊΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ, ΠΊΠ°ΠΊ Π½Π° ΡΠΈΡ. 1.60.
Π ΠΈΡ. 1.60. ΠΠΈΠ΄ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π²Π΅Π»ΠΈΠΊΠΎ ΠΈ Π½Π΅ ΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅
ΠΡΠΌΠ΅ΡΡ, ΡΡΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° Apple MacBook Air, ΠΊΠΎΡΠΎΡΡΡ Ρ Π·Π°Π³ΡΡΠΆΠ°Ρ Π² ΡΡΠΎΡ Π²ΠΈΠ΄, ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 980 Γ 519 ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π½Π΅ ΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ iPhone. ΠΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ? ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π½Π°Ρ Π²ΠΈΠ΄ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° initWithFrame:, Π° Π½Π΅ initWithImage:, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°Π΄Π°Π΅Ρ Π²ΡΡΠΎΡΡ ΠΈ ΡΠΈΡΠΈΠ½Ρ Π²ΠΈΠ΄Π° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π²Π½ΡΠΌΠΈ Π²ΡΡΠΎΡΠ΅ ΠΈ ΡΠΈΡΠΈΠ½Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠ°ΠΊ, ΡΠ½Π°ΡΠ°Π»Π° ΡΠ΅ΡΠΈΠΌ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
β (void)viewDidLoad{
[super viewDidLoad];
UIImage *macBookAir = [UIImage imageNamed:@"MacBookAir"];
self.myImageView = [[UIImageView alloc] initWithFrame: self.view.bounds];
self.myImageView.image = macBookAir;
self.myImageView.center = self.view.center;
[self.view addSubview: self.myImageView];
}
ΠΠ°ΠΊ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΡ. 1.61.
Π ΠΈΡ. 1.61. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΠΈΡΠΈΠ½Π΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΠΎ ΠΌΡ Π½Π΅ ΡΡΠΎΠ³ΠΎ Ρ ΠΎΡΠ΅Π»ΠΈ Π΄ΠΎΠ±ΠΈΡΡΡΡ, ΠΏΡΠ°Π²Π΄Π°? ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠΎΠ½ΡΡΡΡ Π²ΠΈΠ΄Π° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ, Π½ΠΎ ΡΠ°ΠΌΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΡΡΠ°Π»Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. Π§ΡΠΎ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ? ΠΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π·Π°Π΄Π°Π² Π΄Π»Ρ Π²ΠΈΠ΄Π° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ contentMode. ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΈΠΏΠ° UIContentMode:
typedef NS_ENUM(NSInteger, UIViewContentMode) {
UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit,
UIViewContentModeScaleAspectFill,
UIViewContentModeRedraw,
UIViewContentModeCenter,
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
}
ΠΠΎΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠ½Ρ UIViewContentMode:
β’ UIViewContentModeScaleToFill β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Π² Π²ΠΈΠ΄Π΅ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊ, ΡΡΠΎ ΠΎΠ½Π° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ Π²ΠΈΠ΄ Π² Π΅Π³ΠΎ Π³ΡΠ°Π½ΠΈΡΠ°Ρ ;
β’ UIViewContentModeScaleAspectFit β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° Π²Π½ΡΡΡΠΈ Π²ΠΈΠ΄Π° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½ (Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅) ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π³ΡΠ°Π½ΠΈΡΡ Π²ΠΈΠ΄Π° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ;
β’ UIViewContentModeScaleAspectFill β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° Π²Π½ΡΡΡΠΈ Π²ΠΈΠ΄Π° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½ ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π³ΡΠ°Π½ΠΈΡΡ Π²ΠΈΠ΄Π° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π§ΡΠΎΠ±Ρ Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»ΠΎ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ clipsToBounds Π²ΠΈΠ΄Π° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ YES.
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ clipsToBounds Π²ΠΈΠ΄Π° UIView ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π»ΠΈ Β«ΠΏΠΎΠ΄ΠΎΠΊΠ½Π°Β» ΡΡΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΎΠ±ΡΠ΅Π·Π°ΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° Π³ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΈΡ Π²ΠΈΠ΄Π°. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Β«ΠΏΠΎΠ΄ΠΎΠΊΠ½Π°Β» ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²Π½Π΅ Π³ΡΠ°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΈΡ Π²ΠΈΠ΄Π° (ΠΈΠ»ΠΈ ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π΅ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π±ΡΠ΄ΡΡ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ Π·Π° Π΅Π³ΠΎ Π³ΡΠ°Π½ΠΈΡΡ β Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ).