pod 'PYBaseView'
封裝了很多比較常用的控件:
- BaseGradientView:漸變視圖
- PYTableMainView:對tableView的封裝(其他TableView工具的推薦ZHTableViewGroup)
- PYBaseView:切圓角視圖
- BasePointProgressView:進(jìn)度條
- PYBaseSize:對一些常用寬高的管理
BaseGradientView漸變視圖
屏幕快照 2019-08-26 下午1.20.40
-
面向?qū)ο蠡蕽u變工具
-
線性漸變
PYGradientViewLineConfig
PYGradientView對象調(diào)用方法drawLineGradient設(shè)置線性config,并立馬繪制漸變[self.gradientView drawLineGradient:^(PYGradientViewLineConfig *lineConfig) { lineConfig .setUpScaleEndCenter(CGPointMake(0, 0)) .setUpScaleStartCenter(CGPointMake(1, 1)) .setUpColorArray(@[ UIColor.redColor, UIColor.cyanColor ]) .setUpLocationArray(@[ @0,@1 ]); }];
-
-
擴(kuò)散漸變
PYGradientViewDrawRadialConfig
PYGradientView對象調(diào)用方法drawRadialGradient設(shè)置線性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來區(qū)分cell、header、footer
懶加載形式自動緩存每個(gè)cell、header、footer的frame
動態(tài)注冊 header、cell、footer
其他推薦:ZHTableViewGroup
PYBaseView切圓角視圖
屏幕快照 2019-08-26 下午2.23.20
- (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進(jìn)度條
屏幕快照 2019-08-24 下午2.41.20
PYBaseSize對一些常用寬高的管理
提供了一些常用的高度、寬度。
@interface PYBaseSize : NSObject
/// 導(dǎo)航條總高度 iphoneX 以下為64,以上為88
@property(class, nonatomic, readonly) CGFloat navTotalH;
/// 導(dǎo)航條高度
@property(class, nonatomic, readonly) CGFloat navBarH;
/// 電池欄高度
@property(class, nonatomic, readonly) CGFloat statusBarH;
/// 底部的homelBar高度
@property(class, nonatomic, readonly) CGFloat homeBarH;
/// 底部的導(dǎo)航欄高度
@property(class, nonatomic, readonly) CGFloat tabbarH;
/// 屏幕最大寬度
@property(class, nonatomic, readonly) CGFloat screenW;
/// 屏幕最大高度
@property(class, nonatomic, readonly) CGFloat screenH;
/// 祛除導(dǎo)航欄h 后的最大高度 screenH - NavTotalH
@property(class, nonatomic, readonly) CGFloat screen_navH;
/// 祛除導(dǎo)航欄與tabbar的高度
@property(class, nonatomic, readonly) CGFloat screen_nav_tabBarH;
/// 需要調(diào)用,就可以拿到正確的值
+ (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