PYBaseView

pod 'PYBaseView'

掘金

Demo

封裝了很多比較常用的控件:

  1. BaseGradientView:漸變視圖
  2. PYTableMainView:對tableView的封裝其他TableView工具的推薦ZHTableViewGroup
  3. PYBaseView:切圓角視圖
  4. BasePointProgressView:進(jìn)度條
  5. 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

  1. 高聚合代碼。

  2. 拋棄了組的限制,用類型或者key來區(qū)分cell、header、footer

  3. 懶加載形式自動緩存每個(gè)cell、header、footer的frame

  4. 動態(tài)注冊 header、cell、footer

  5. 其他推薦: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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容