简单实现XIB上的约束值,按照指定需求自动变化(根据屏幕宽度变化)。
基准图(750 * 1334)上控件距离左边为20
达到效果:5s(640 * 1136)上运行距离为 20*(320/375.0) = 17.07;
6s(750 * 1334)上运行距离为 20*(375/375.0) = 20;
8p(828 * 1472)上运行距离为 20*(621/375.0) = 22.08;
.h
#import <UIKit/UIKit.h>
@interface NSLayoutConstraint (IBDesignable)
@property (nonatomic)IBInspectable BOOL widthScreen;
@end
.m
//按比例获取宽度 根据375的屏幕
#define C_WIDTH(WIDTH) WIDTH * [UIScreen mainScreen].bounds.size.width/375.0#import "NSLayoutConstraint+IBDesignable.h"
@implementation NSLayoutConstraint (IBDesignable)
-(void)setWidthScreen:(BOOL)widthScreen{
if (widthScreen) {
self.constant = C_WIDTH(self.constant);
}else{
self.constant = self.constant;
}
}
-(BOOL)widthScreen{
return self.widthScreen;
}
@end
XIB上这时选中约束 右上角多出一个选项 默认关闭 选中on就可以了
UILabel字体适配 其他控件可自己添加
.h
@interface UILabel (FixScreenFont)
@property (nonatomic)IBInspectable float fixWidthScreenFont;
@end
.m
@implementation UILabel (FixScreenFont)
- (void)setFixWidthScreenFont:(float)fixWidthScreenFont{
if (fixWidthScreenFont > 0 ) {
self.font = [UIFont systemFontOfSize:C_WIDTH(fixWidthScreenFont)];
}else{
self.font = self.font;
}
}
- (float )fixWidthScreenFont{
return self.fixWidthScreenFont;
}
@end
右上角输入字号就能自动适配字体了
文章方便大家使用XIB快速开发,View的圆角啊边框什么的都可以自己设置在XIB上。IBInspectable 和 IBDesignable 的知识还很多。今天就到这里。