【Coding】【4】iOS UI小操作集(二)

本文最后更新于:2021年12月22日 上午

【Coding】系列目录


目录

1. 加载xib

2. xib控件等间距排列

  (1)xib约束

  (2)Stack View

  (3)Masonry函数

3. 剪切板读写

4. UILabel和UIButton自适应宽度

  (1)字体大小确定宽度自适应

  (2)宽度确定字体大小自适应


内容

1. 加载xib

iOS中相关API中大凡参数需要传bundle,当我们设置为nil时,默认情况下就是访问mainBundle。

1
2
3
4
5
// 方法1
UIView *view1 = [[[NSBundle mainBundle] loadNibNamed:@"XibName" owner:nil options:nil] lastObject];

// 方法2
UIView *view2 = [[[UINib nibWithNibName:@"XibName" bundle:nil] instantiateWithOwner:nil options:nil] lastObject];

2. xib控件等间距排列

(1)xib约束

下面两个操作顺序不能更换

  • 先拉控件间距等宽
  • 再拉控件宽度相等

image.png

(2)Stack View

Stack View需要内部控件支撑其宽高

(a)等宽等间距
  • 拖入子控件
    image.png

  • 设置Strack View属性
    image.png

(b)等间距不等宽
  • 拖入子控件
    image.png

  • 设置Strack View属性(此时spacing无效)
    image.png

(3)Masonry函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[self.view addSubview:self.button1];
[self.view addSubview:self.button2];
[self.view addSubview:self.button3];
[self.view addSubview:self.button4];

//将控件添加到一个数组里面
NSArray *array = @[self.button1,self.button2,self.button3,self.button4];

/*
使用方法,一次性配置:横向布局,控件间距15,第一个控件与父容器间距10,
最后一个控件与父容器间距10
*/
[array mas_distributeViewsAlongAxis:MASAxisTypeHorizontal
withFixedSpacing:15 leadSpacing:10 tailSpacing:10];

//设置单个view的大小,在父view的与需要平分的方向的垂直方向的位置,例如需要在水平方向平分,就给一个竖直方向的位置
[array mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view); //或者make.centerY.equalTo(self.view);
make.height.equalTo(@75);
}];

3. 剪切板读写

  • 1
    2
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    NSString *info = pasteboard.string;
  • 1
    2
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    pasteboard.string = @"xxx";

4. UILabel和UIButton自适应宽度

(1)字体大小确定宽度自适应

1
2
3
4
5
UILabel *label = [[UILabel alloc initWithFrame:CGRectMake(0, 0, 30, 30)];
label.font = [UIFont systemFontOfSize:15];
label.text = @"自适应宽度";
[label sizeToFit];//注意和上面一句代码顺序不能颠倒

(2)宽度确定字体大小自适应

1
2
3
4
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 30, 30)];
label.font = [UIFont systemFontOfSize:15];
label.text = @"自适应宽度";
label.adjustsFontSizeToFitWidth = YES;

button处理方式

1
2
[button.titleLabel sizeToFit];
button.titleLabel.adjustsFontSizeToFitWidth = YES;

联系方式

邮箱: adrenine@163.com