oc有宏文件,但是swift没有,不过swift可以不引入头文件就可以随意访问整个项目的任何文件,所以,swift也可以实现宏文件的功能,创建一个swift文件,里面可以这么写
:
创建完上面写的是"import Foundation",你如果想使用ui框架,就改成"import UIKit"
例如,可以如下:
//
// IFHeader.swift
// Copyright © 2017年 Supernova Software. All rights reserved.
//
import UIKit
//获取屏幕的高
let IPhone_SCREEN_HEIGHT = UIScreen.main.bounds.height
//获取屏幕宽
let IPhone_SCREEN_WIDTH = UIScreen.main.bounds.width
//iPhone X 宏定义
let iPhoneX = (IPhone_SCREEN_WIDTH == 375.cgfloat && IPhone_SCREEN_HEIGHT == 812.cgfloat ? true : false)
//适配iPhone X 状态栏高度
let IPhone_StatusBarHeight = (iPhoneX ? 44.cgfloat : 20.cgfloat)
// 适配iPhone X Tabbar高度
let IPhone_TabbarHeight = (iPhoneX ? (49.cgfloat+34.cgfloat) : 49.cgfloat)
// 适配iPhone X Tabbar距离底部的距离
let IPhone_TabbarSafeBottomMargin = (iPhoneX ? 34.cgfloat : 0.cgfloat)
// 适配iPhone X 导航栏高度
let IPhone_NavHeight = (iPhoneX ? 88.cgfloat : 64.cgfloat)
下面oc版:
// UIScreen width.
#define LL_ScreenWidth [UIScreen mainScreen].bounds.size.width
// UIScreen height.
#define LL_ScreenHeight [UIScreen mainScreen].bounds.size.height
// iPhone X
#define LL_iPhoneX (LL_ScreenWidth == 375.f && LL_ScreenHeight == 812.f ? YES : NO)
// Status bar height.
#define LL_StatusBarHeight (LL_iPhoneX ? 44.f : 20.f)
// Navigation bar height.
#define LL_NavigationBarHeight 44.f
// Tabbar height.
#define LL_TabbarHeight (LL_iPhoneX ? (49.f+34.f) : 49.f)
// Tabbar safe bottom margin.
#define LL_TabbarSafeBottomMargin (LL_iPhoneX ? 34.f : 0.f)
// Status bar & navigation bar height.
#define LL_StatusBarAndNavigationBarHeight (LL_iPhoneX ? 88.f : 64.f)
#define LL_ViewSafeAreInsets(view) ({UIEdgeInsets insets; if(@available(iOS 11.0, *)) {insets = view.safeAreaInsets;} else {insets = UIEdgeInsetsZero;} insets;})