iOS XIB約束適配 || 字型 根據螢幕寬變化
阿新 • • 發佈:2018-12-14
簡單實現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就可以了
1526971534600.jpg
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
1B5EE4A7-1EEF-4DC2-B2DA-F55CFE3489A8.png
右上角輸入字號就能自動適配字型了
文章方便大家使用XIB快速開發,View的圓角啊邊框什麼的都可以自己設定在XIB上。IBInspectable 和 IBDesignable 的知識還很多。今天就到這裡。
作者:ShouldChang 連結:https://www.jianshu.com/p/645485ec6e1d 來源:簡書 簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。