pod 'PYBaseView'
封装了很多比较常用的控件:
- BaseGradientView:渐变视图
- PYTableMainView:对tableView的封装(其他TableView工具的推荐ZHTableViewGroup)
- PYBaseView:切圆角视图
- BasePointProgressView:进度条
- PYBaseSize:对一些常用宽高的管理
BaseGradientView渐变视图
-
面向对象化色彩渐变工具
-
线性渐变
PYGradientViewLineConfig
PYGradientView
对象调用方法drawLineGradient
设置线性config,并立马绘制渐变[self.gradientView drawLineGradient:^(PYGradientViewLineConfig *lineConfig) { lineConfig .setUpScaleEndCenter(CGPointMake(0, 0)) .setUpScaleStartCenter(CGPointMake(1, 1)) .setUpColorArray(@[ UIColor.redColor, UIColor.cyanColor ]) .setUpLocationArray(@[ @0,@1 ]); }];
-
-
扩散渐变
PYGradientViewDrawRadialConfig
PYGradientView
对象调用方法drawRadialGradient
设置线性config,并立马绘制渐变[self.gradientView drawRadialGradient:^(PYGradientViewDrawRadialConfig *radialConfig) { radialConfig .setUpScaleEndCenter(CGPointMake(0.5, 0.5)) .setUpScaleStartCenter(CGPointMake(0.5, 0.5)) .setUpColorArray(@[ UIColor.redColor, UIColor.blueColor ]) .setUpStartRadius(0) .setUpEndRadius(1000) .setUpLocationArray(@[@0.1,@1]); }];
PYTableMainView
高聚合代码。
抛弃了组的限制,用类型或者key来区分cell、header、footer
懒加载形式自动缓存每个cell、header、footer的frame
动态注册 header、cell、footer
其他推荐:ZHTableViewGroup
PYBaseView切圆角视图
- (PYBaseView *)roundView {
if (!_roundView) {
_roundView = [PYBaseView new];
_roundView
.config
.setUpLeftTopAddRadius(6)//左上角追加圆角半径
.setUpLeftBottomAddRadius(20)//左下角追加圆角半径
.setUpRightTopAddRadius(35)//右上角追加圆角半径
.setUpRightBottomAddRadius(50)//右下角追加圆角半径
.setUpShadowAlpha(1)//阴影alpha
.setUpShadowColor(UIColor.redColor)//阴影颜色
.setUpShadowRadius(10)//模糊程度
.setUpShadowOffset(CGSizeMake(10, 10))/
.setUpRightBottomAddRadius(50)
.setUpShadowAlpha(1)
.setUpShadowColor(UIColor.redColor)
.setUpShadowRadius(10)
.setUpShadowOffset(CGSizeMake(10, 10));
_roundView.isDrawShadow = true;
}
return _roundView;
}
BasePointProgressView进度条
PYBaseSize对一些常用宽高的管理
提供了一些常用的高度、宽度。
@interface PYBaseSize : NSObject
/// 导航条总高度 iphoneX 以下为64,以上为88
@property(class, nonatomic, readonly) CGFloat navTotalH;
/// 导航条高度
@property(class, nonatomic, readonly) CGFloat navBarH;
/// 电池栏高度
@property(class, nonatomic, readonly) CGFloat statusBarH;
/// 底部的homelBar高度
@property(class, nonatomic, readonly) CGFloat homeBarH;
/// 底部的导航栏高度
@property(class, nonatomic, readonly) CGFloat tabbarH;
/// 屏幕最大宽度
@property(class, nonatomic, readonly) CGFloat screenW;
/// 屏幕最大高度
@property(class, nonatomic, readonly) CGFloat screenH;
/// 祛除导航栏h 后的最大高度 screenH - NavTotalH
@property(class, nonatomic, readonly) CGFloat screen_navH;
/// 祛除导航栏与tabbar的高度
@property(class, nonatomic, readonly) CGFloat screen_nav_tabBarH;
/// 需要调用,就可以拿到正确的值
+ (void) setNavTotalH: (CGFloat) h;
+ (void) setNavBarH: (CGFloat) h;
+ (void) setStatusBarH: (CGFloat) h;
+ (void) setHomeBarH: (CGFloat) h;
@end
#import "PYBaseSize.h"
@implementation PYBaseSize
static CGFloat navTotalH = 0;
static CGFloat navBarH = 0;
static CGFloat statusBarH = 0;
static CGFloat homeBarH = 0;
static CGFloat tabbarH = 0;
static CGFloat screenW = 0;
static CGFloat screenH = 0;
static CGFloat screen_navH = 0;
static CGFloat screen_nav_tabBarH = 0;
+ (CGFloat)navBarH {
if (navBarH <= 0) {
UINavigationController *baseNavc = [[UINavigationController alloc]init];
navBarH = baseNavc.navigationBar.bounds.size.height;
}
return navBarH;
}
+ (CGFloat) navTotalH {
if (navTotalH <= 0) {
navTotalH = PYBaseSize.navBarH + PYBaseSize.statusBarH;
}
return navTotalH;
}
+ (CGFloat)homeBarH {
if (homeBarH <= 0) {
homeBarH = PYBaseSize.statusBarH>20?34:0;
}
return homeBarH;
}
+ (CGFloat) tabbarH {
if (tabbarH <= 0) {
tabbarH = [[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49;
}
return tabbarH;
}
+ (CGFloat) screenW {
if (screenW <= 0) {
screenW = [UIScreen mainScreen].bounds.size.width;
}
return screenW;
}
+ (CGFloat) screenH {
if (screenH <= 0) {
screenH = [UIScreen mainScreen].bounds.size.height;
}
return screenH;
}
+ (CGFloat)screen_navH {
if (screen_navH <= 0) {
screen_navH = PYBaseSize.screenH - PYBaseSize.navTotalH;
}
return screen_navH;
}
+ (CGFloat)screen_nav_tabBarH {
if (screen_nav_tabBarH <= 0) {
screen_nav_tabBarH = PYBaseSize.screen_navH - PYBaseSize.tabbarH;
}
return screen_nav_tabBarH;
}
+ (CGFloat)statusBarH {
if (statusBarH <= 0) {
statusBarH = [[UIApplication sharedApplication] statusBarFrame].size.height;
}
return statusBarH;
}
+ (void) setNavBarH: (CGFloat) h {
navBarH = h;
}
+ (void) setNavTotalH: (CGFloat) h {
navTotalH = h;
}
+ (void) setStatusBarH: (CGFloat) h {
statusBarH = h;
}
+ (void) setHomeBarH: (CGFloat) h {
homeBarH = h;
}
@end