Articles taggés avec 'CGPoint'

Objective-C: NSLog () du C struct

o CGPoint , ad esempio. La syntaxe NSLog(@"%@", ... ); qui fonctionne et est utilisé pour obtenir des informations sur les objets, mais ne fonctionne pas sur les types de données tels que C struct CGRect ou CGPoint , par exemple. o NSStringFromCGPoint : Pour profiter de NSLog(@"%@", ... ); également de style C structs nous pouvons nous appuyer sur les fonctions de conversion telles que NSStringFromCGRect() ou NSStringFromCGPoint :

1
2
3
4
5
CGRect ) { 10 , 20 , 30 , 40 } ; CGRect mioRect = (CGRect) {10, 20, 30, 40};
CGPoint ) { 32 , 64 } ; CGPoint mioPoint = (CGPoint) {32, 64};
/ /
"Info rettangolo: %@" , NSStringFromCGRect ( mioRect ) ) ; NSLog (@ "rectangle Info:% @", NSStringFromCGRect (mioRect));
"Info point: %@" , NSStringFromCGPoint ( mioPoint ) ) ; NSLog (@ "point info:% @", NSStringFromCGPoint (mioPoint));

Plus précisément, il est possible d'affiner les procédures correspondantes de petites macros utiles comme:

1
# Définir NSLogRect (rect) NSLog (@ "% s (% 0.0f, 0.0f%) 0.0f%% 0.0fx", # rect, rect.origin.x, rect.origin.y, rect.size.width , rect.size.height)

Ou:

1
2
3
4
# Définir NSLogCGPoint (point) NSLog (@ "% s (% 0.0f, 0.0f%)", # Point.X point, Point.y)

CGPoint ) { 32 , 64 } ; CGPoint mioPoint = (CGPoint) {32, 64};
; NSLogCGPoint (mioPoint);

Cela vous donnera en sortie:

1
32 , 64 ) mioPoint: (32, 64)

En savoir plus ...

Objective-C: une alternative à l'utilisation CGRectMake

CGRectMake() est une fonction (en fait une ligne # define) beaucoup utilisé en particulier lorsque des objets sont créés par le code ou d'une interface utilisateur graphique. o UIImageView . CGRectMake() restituisce una struct (struttura di tipo) CGRect : Son utilisation est donc souvent associé composants d'initialisation de UIKit , mais aussi à de simples UIView ou UIImageView . CGRectMake() retourne une struct (type de structure) CGRect :

1
2
3
4
5
struct {CGRect
Origine CGPoint;
CGSize taille;
};
typedef struct CGRect CGRect;

: Qui à son tour est composé de deux différents structure CGPoint et CGSize :

1
2
3
4
5
6
7
8
9
10
11
12
13
struct {CGPoint
X CGFloat;
CGFloat y;
};
typedef struct CGPoint CGPoint;

Tailles * /. * /

struct {CGSize
CGFloat largeur;
CGFloat hauteur;
};
typedef struct CGSize CGSize;

. Que, à leur tour à nouveau, contiennent des types CGFloat , ou des types float . Si nous analysons le code de CGRectMake () sont les suivants:

1
2
3
4
5
6
7
8
CG_INLINE CGRect
CGRectMake (CGFloat x, y CGFloat, largeur CGFloat, CGFloat hauteur)
{
CGRect rect;
y; rect.origin.x = x; rect.origin.y = y;
height; rect.size.width = largeur; rect.size.height = hauteur;
retourner rect;
}

Il s'ensuit, donc, que cette partie du code:

1
2
3
4
[ UIButton buttonWithType : UIButtonTypeRoundedRect ] ; UIButton gbutton * = [UIButton buttonWithType: UIButtonTypeRoundedRect];
12 , 409 , 100 , 40 ) ; gbutton.frame = CGRectMake (12, 409, 100, 40);
@ "Press" forState : UIControlStateNormal ] ; [Gbutton setTitle: @ "Presse" forState: UIControlStateNormal];
gbutton ] ; [MainWindow addSubview: gbutton];

Il pourrait à juste titre être écrite comme suit:

1
2
3
4
[ UIButton buttonWithType : UIButtonTypeRoundedRect ] ; UIButton gbutton * = [UIButton buttonWithType: UIButtonTypeRoundedRect];
CGRect ) { 12 , 409 , 100 , 40 } ; gbutton.frame = (CGRect) {12, 409, 100, 40};
@ "Press" forState : UIControlStateNormal ] ; [Gbutton setTitle: @ "Presse" forState: UIControlStateNormal];
gbutton ] ; [MainWindow addSubview: gbutton];

Juste pour accélérer les choses »le code est exécuté ... :)

En savoir plus ...


Arrêtez SOPA