美文网首页
UIStackView使用

UIStackView使用

作者: 863cda997e42 | 来源:发表于2020-04-30 13:22 被阅读0次

UIStackView的使用

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic, getter=isHiddenStatusBar) BOOL hiddenStatusBar;
@end

@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.hiddenStatusBar = false;
    
    UITapGestureRecognizer *pan = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
    pan.numberOfTapsRequired = 2;
    
    [self.view addGestureRecognizer:pan];
    
    [self createView];
}
- (void)createView{
    
    CGFloat height = [UIScreen mainScreen].bounds.size.height;
    CGFloat width = [UIScreen mainScreen].bounds.size.width;
    int row = 36;//行
    int col = 6;//列
    CGFloat spacing = 1;
    CGFloat top = 20;
    CGFloat padding = 1;
    int value = 0;
    if (self.isHiddenStatusBar) {
        top = 0;
        spacing = 0;
        padding = 0;
    }
    for (UIView *view in self.view.subviews) {
        [view removeFromSuperview];
    }
    UIStackView *stackViewv = [[UIStackView alloc] initWithFrame:CGRectMake(padding, top + padding, width - 2 * padding, height - top - 2 * padding)];
    stackViewv.axis = UILayoutConstraintAxisVertical;
    stackViewv.distribution = UIStackViewDistributionFillEqually;
    stackViewv.spacing = spacing;
    stackViewv.alignment = UIStackViewAlignmentFill;
    for (int j = 0; j < row; j++){
        UIStackView *stackViewh = [[UIStackView alloc] init];
        stackViewh.axis = UILayoutConstraintAxisHorizontal;
        stackViewh.distribution = UIStackViewDistributionFillEqually;
        stackViewh.spacing = spacing;
        stackViewh.alignment = UIStackViewAlignmentFill;
        for (int i = 0; i < col; i++) {
            UIView *view = [[UIView alloc] init];
            int r, g, b;
            r = value / 6 / 6;
            g = value / 6 % 6;
            b = value % 6;
            r *= 0x33;
            g *= 0x33;
            b *= 0x33;
            view.backgroundColor = [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1];;
            UILabel *label = [[UILabel alloc] init];
            label.frame = CGRectMake(0, 0, (width - padding * 2 - spacing *(col - 1)) / col , (height - top - padding * 2 - (row - 1) * spacing) / row);
            label.text = [NSString stringWithFormat:@"%02X%02X%02X", r, g, b];
            label.textColor = (value / 18) % 2 == 0?[UIColor whiteColor]:[UIColor blackColor];
            label.textAlignment = NSTextAlignmentCenter;
            label.font = self.isHiddenStatusBar?[UIFont systemFontOfSize:14]:[UIFont systemFontOfSize:12];
            [view addSubview:label];
            [stackViewh addArrangedSubview:view];
            value++;
        }
        [stackViewv addArrangedSubview:stackViewh];
    }
    [self.view addSubview:stackViewv];
}
- (void)tapped: (UIGestureRecognizer *)gecognizer {
    self.hiddenStatusBar = !self.isHiddenStatusBar;
    [self setNeedsStatusBarAppearanceUpdate];
    [self createView];
}
- (BOOL)prefersStatusBarHidden {
    return self.isHiddenStatusBar;
}
@end

隐藏状态栏,设置 View controller-based status bar appearance 为YES。

IMG_4555.PNG IMG_4554.PNG

相关文章

  • UIStackView 使用

    UIStackView 只支持iOS9之后的版本,然而现在应用一般支持到iOS7,FDStackView,It w...

  • UIStackView使用

    什么是UIStackView? UIStackView是在iOS9中才出现的,它可以帮助我们布局UI控件,从而减少...

  • UIStackView使用

    UIStackView的使用 隐藏状态栏,设置 View controller-based status bar ...

  • UIStackView 使用

    为什么使用它 1.动态实现视图的添加。不用修改删除、添加、隐藏后的布局约束。2.布局速度快, 不需要写autola...

  • UIStackView的使用

    终于熬到了iOS9.0,如果你们公司最低支持的是iOS9的话。那么UIStackView就可以使用了。 由于UIS...

  • UIStackView的使用

    一、了解 instric content size instric content size 表示一个 view ...

  • UIStackView使用(二)

    与Label、Button等控件一样,Stack View 也有自己的Intrinsic Size,在未设定约束时...

  • UIStackView使用介绍

    在iOS开发中,对于控件布局我们一般是使用AutoLayout加约束的机制实现,UIKit有一个布局组件UISta...

  • 【UIKit】UIStackView

    UIStackView UIStackView : UIViewiOS 9.0 基于 Flexbox 思想的布局方...

  • iOS - UIStackView的使用

    UIStackView 在iOS9中苹果在UIKit框架中引入了一个新的视图类UIStackView。UIStac...

网友评论

      本文标题:UIStackView使用

      本文链接:https://www.haomeiwen.com/subject/kwezwhtx.html