设为首页 加入收藏

TOP

关于OC中直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型(一)
2017-10-13 10:17:13 】 浏览:1327
Tags:关于 直接 打印 结构 CGRect CGSize CGPoint UIOffset 数据 类型

关于OC直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型,我们完全可以把其转换为OC对象来进项打印调试,而不必对结构体中的成员变量进行打印.就好比我们可以使用NSStringFromCGRect(CGRect rect)来直接打印一个结构体,其他打印可以参考以下内容

UIKIT_EXTERN NSString *NSStringFromCGPoint(CGPoint point);

UIKIT_EXTERN NSString *NSStringFromCGVector(CGVector vector);

UIKIT_EXTERN NSString *NSStringFromCGSize(CGSize size);

UIKIT_EXTERN NSString *NSStringFromCGRect(CGRect rect);

UIKIT_EXTERN NSString *NSStringFromCGAffineTransform(CGAffineTransform transform);

UIKIT_EXTERN NSString *NSStringFromUIEdgeInsets(UIEdgeInsets insets);

UIKIT_EXTERN NSString *NSStringFromUIOffset(UIOffset offset);

OC中好多几何学中的内容,一般都包括在 UIGeometry.h 文件中 仔细看看,可以学到好多东西

 

  1  NS_ASSUME_NONNULL_BEGIN
  2 
  3 typedef struct UIEdgeInsets {
  4     CGFloat top, left, bottom, right;  // specify amount to inset (positive) for each of the edges. values can be negative to 'outset'
  5 } UIEdgeInsets;
  6 
  7 typedef struct UIOffset {
  8     CGFloat horizontal, vertical; // specify amount to offset a position, positive for right or down, negative for left or up
  9 } UIOffset;
 10 
 11 typedef NS_OPTIONS(NSUInteger, UIRectEdge) {
 12     UIRectEdgeNone   = 0,
 13     UIRectEdgeTop    = 1 << 0,
 14     UIRectEdgeLeft   = 1 << 1,
 15     UIRectEdgeBottom = 1 << 2,
 16     UIRectEdgeRight  = 1 << 3,
 17     UIRectEdgeAll    = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeBottom | UIRectEdgeRight
 18 } NS_ENUM_AVAILABLE_IOS(7_0);
 19 
 20 UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) {
 21     UIEdgeInsets insets = {top, left, bottom, right};
 22     return insets;
 23 }
 24 
 25 UIKIT_STATIC_INLINE CGRect UIEdgeInsetsInsetRect(CGRect rect, UIEdgeInsets insets) {
 26     rect.origin.x    += insets.left;
 27     rect.origin.y    += insets.top;
 28     rect.size.width  -= (insets.left + insets.right);
 29     rect.size.height -= (insets.top  + insets.bottom);
 30     return rect;
 31 }
 32 
 33 UIKIT_STATIC_INLINE UIOffset UIOffsetMake(CGFloat horizontal, CGFloat vertical) {
 34     UIOffset offset = {horizontal, vertical};
 35     return offset;
 36 }
 37 
 38 UIKIT_STATIC_INLINE BOOL UIEdgeInsetsEqualToEdgeInsets(UIEdgeInsets insets1, UIEdgeInsets insets2) {
 39     return insets1.left == insets2.left && insets1.top == insets2.top && insets1.right == insets2.right && insets1.bottom == insets2.bottom;
 40 }
 41 
 42 UIKIT_STATIC_INLINE BOOL UIOffsetEqualToOffset(UIOffset offset1, UIOffset offset2) {
 43     return offset1.horizontal == offset2.horizontal && offset1.vertical == offset2.vertical;
 44 }
 45 
 46 UIKIT_EXTERN const UIEdgeInsets UIEdgeInsetsZero;
 47 UIKIT_EXTERN const UIOffset UIOffsetZero;
 48 
 49 // 结构体等数据类型 --> OC对象
 50 UIKIT_EXTERN NSString *NSStringFromCGPoint(CGPoint point);
 51 UIKIT_EXTERN NSString *NSStringFromCGVector(CGVector vector);
 52 UIKIT_EXTERN NSString *NSStringFromCGSize(CGSize size);
 53 UIKIT_EXTERN NSString *NSStringFromCGRect(CGRect rect);
 54 UIKIT_EXTERN NSString *NSStringFromCGAffineTransform(CGAffineTransform transform);
 55 UIKIT_EXTERN NSString *NSStringFromUIEdgeInsets(UIEdgeInsets insets);
 56 UIKIT_EXTERN NSString *NSStringFromUIOffset(UIOffset offset);
 57 
 58 // OC对象 --> 结构体等数据类型
 59 UIKIT_EXTERN CGPoint CGPointFromString(NSString *string);
 60 UIKIT_EXTERN CGVector CGVectorFromString(N
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇IOS 音效 下一篇iOS 用 SDWebImage 清理图片缓存

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目