iOS 控件宽高字体大小适配方法

1.在AppDelegate.h里面设置两个方法:
- ( CGFloat )autoScaleW:( CGFloat )w;

- (CGFloat)autoScaleH:(CGFloat)h;

2.在AppDelegate.m里面设置两个属性:
// 当前屏幕与设计尺寸 (iPhone6) 宽度比例
@property ( nonatomic , assign ) CGFloat  autoSizeScaleW;

// 当前屏幕与设计尺寸 (iPhone6) 高度比例
@property ( nonatomic , assign ) CGFloat  autoSizeScaleH;

实现自定义方法 - ( void )initAutoScaleSize;
- ( BOOL )application:( UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions;中调用此方法
#pragma mark - ScaleSize
- ( void )initAutoScaleSize{
   
   
if ( kScreenHeight == 480 ) {
       
//4s
       
_autoSizeScaleW = kScreenWith / 375 ;
       
_autoSizeScaleH = kScreenHeight / 667 ;
    }
else if ( kScreenHeight == 568 ) {
       
//5
       
_autoSizeScaleW = kScreenWith / 375 ;
       
_autoSizeScaleH = kScreenHeight / 667 ;
    }
else if ( kScreenHeight == 667 ){
       
//6
       
_autoSizeScaleW = kScreenWith / 375 ;
       
_autoSizeScaleH = kScreenHeight / 667 ;
    }
else if ( kScreenHeight == 736 ){
       
//6p
       
_autoSizeScaleW = kScreenWith / 375 ;
       
_autoSizeScaleH = kScreenHeight / 667 ;
    }
else {
       
_autoSizeScaleW = 1 ;
       
_autoSizeScaleH = 1 ;
    }

}

- (
CGFloat )autoScaleW:( CGFloat )w{
   
   
return w * self . autoSizeScaleW ;
   
}

- (
CGFloat )autoScaleH:( CGFloat )h{
   
   
return h * self . autoSizeScaleH ;
   
}


3.在pch文件中设置宏定义(别忘了在pch里面引用AppDelegate.h文件哦,否则这个宏会报错呢)
#define autoScaleW(width) [(AppDelegate *)[UIApplication sharedApplication].delegate autoScaleW:width]
#define autoScaleH(height) [(AppDelegate *)[UIApplication sharedApplication].delegate autoScaleH:height]

4.写控件时设置字体大小:
[ UIFont systemFontOfSize : autoScaleW ( 14 )]

设置frame:
CGRectMake ( CGRectGetMaxX ( self . productNameLabel . frame ) + 10 , self . productNameLabel . top + 3 , autoScaleW ( 32 ), autoScaleW ( 17 ));
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值