Swift 3 – Xcode -View – Aspect Fit, Aspect Fill si Scale To Fit

Nu de putine ori atunci cand adaugam o poza (image) intr-un ImageView Controller avem probleme cu dimensionarea acesteia. In mod normal o poza este deformata pentru a intra in ImageView si nu se tine cont de ratio in acest caz. E cazul VIEW -> MODE -> SCALE TO FIT

 

Daca vreau sa imi pastrez original ratio pentru poza astfel incat ea sa se incadreze in ImageView Controller-ul meu, solutia este VIEW -> MODE -> ASPECT FIT. Poza este corect redimensionata pe dimensiunea controller-ului.

 

O alta varianta ar fi l VIEW -> MODE -> ASPECT FILL, caz in care poza este incadrata pe original ratio insa nu se mai respecta granita ImageView-ului, imaginea fiind incadrata corect pe dimensiunea ecranului.

 

Share Button

Xcode 8 – problema loguri

La rularea unei aplicații în XCode8 apar în consolă tot felul de loguri ciudate:

2016-09-28 10:18:45.945891 test[1106:54365] bundleid: com.test.test, enable_level: 0, persist_level: 0, propagate_with_activity: 0
2016-09-28 10:18:45.946484 test[1106:54365] subsystem: com.apple.siri, category: Intents, enable_level: 1, persist_level: 1, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0
2016-09-28 10:18:45.956716 test[1106:54704] subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0

Aceste loguri interne sunt o povară atunci când trebuie să urmăresc logurile mele interne.
Cum le dezactivez?

1- Xcode -> Product -> Scheme -> Edit Scheme

2- Adaug în Environment Variables set OS_ACTIVITY_MODE = disable


xcode

Share Button

IOS – colturi rotunjite si borduri la poza de profil

Fie un UIImageView care va “încarca” o imagine. În cazul meu, am folosit imageTAView pentru a încarca poză de profil pentru aplicația mea de Twitter.
@property (nonatomic,strong) UIImageView *imageTAView;

In .m definim următoarele:
self.imageTAView.layer.cornerRadius = self.imageTAView.frame.size.width / 2;
self.imageTAView.clipsToBounds = YES;

Pentru a transforma imaginea pătrată în formă circulară definim raza circulara a layer-ului ca fiind jumătate din lățimea layerului pătrat. clipsToBounds “pune” masca nou-creată peste layerul inițiat pătrat.

Aplicarea bordurii se realizează cu borderWidth, proprietate din clasa CALayer, după cum urmează:

self.imageTAView.layer.borderWidth = 3.0f;
self.imageTAView.layer.borderColor = [UIColor lightGrayColor].CGColor;

Share Button

Care este diferența între bounds și frame în IOS?

Cea mai elocventă explicație despre ce înseamnă bounds, center și frame în IOS este dată de Paul Hegarty în acest slide:

Diferenta bounds frame in IOS

De reținut este faptul că un CGRect din View se poate roti, prin urmare size și origins ale bounds-ului pot avea valori diferite față de origins și size ale frame-ului.

Share Button