iOS tips

1.自定义的导航栏右键,enable禁用

在自定义导航栏右键时,在某条件成立时,按钮可响应点击事件,尝试如下:

self.saveBtn = [self getBtn:MKString(@"Post_Button_Save") action:@selector(onSave)];
[self.saveBtn setEnabled:NO];
self.saveBtn.alpha = 0.4;
UIBarButtonItem *customBar = [[UIBarButtonItem alloc] initWithCustomView:self.saveBtn];
    self.navigationItem.rightBarButtonItem = customBar;
    

测下来未达到预期效果,然后尝试如下:

self.saveBtn = [self getBtn:MKString(@"Post_Button_Save") action:@selector(onSave)];
UIBarButtonItem *customBar = [[UIBarButtonItem alloc] initWithCustomView:self.saveBtn];
self.navigationItem.rightBarButtonItem = customBar;
[self.saveBtn setEnabled:NO]; // 调换位置
self.saveBtn.alpha = 0.4;

这样是可以的。

  1. UILabel上显示字符串尾部空格字符

    UILabel对字符串的尾部有默认的trim功能,为了某些显示效果,需要其他的办法来实现UILabel,如下:

    NSString * title = [NSString stringWithFormat:@" %d ", num];
    
    NSMutableParagraphStyle * style = [[NSMutableParagraphStyle alloc] init];
    NSMutableAttributedString * attribut = [[NSMutableAttributedString alloc]
                                                    initWithString:title                               attributes:@{NSForegroundColorAttributeName:ColorString(@"#ffffff"),                                                          							NSParagraphStyleAttributeName:style}];
    self.mLabel.attributedText = attribut;
    
  2. UIScrollView的Masonry布局

UIScrollView是可以左右上下滑动的控件,在用Masonry对在其之上的元素布局时,某些约束条件是无效的,比如:

[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.equalTo(self.scrollview.left).offset(200);
}];

上面代码可以使titleLabel在scrollview的左侧200的位置处。

[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.right.equalTo(self.scrollview.right);
}];

但是,上面代码并不能使titleLabel在scrollview的右侧。

所以,在对UIScrollView进行Masonry布局,需遵循从上到下、从左到右的方式,当布局内容超过一屏幕时,scrollview可以进行滑动。

具体的方式如下:

  • 对scrollview进行约束

    [self.scrollview mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.equalTo(self.view);
    }];
    
  • 声明containView 放置在scrollview上

    // 设置参照视图的约束
    [self.containView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.equalTo(self.scrollview);
        make.width.equalTo(self.scrollview);
     }];
    
  • 其他的视图,都放置在containView上,并进行约束

  • 最后约束containView的底部条件

    [self.containView mas_makeConstraints:^(MASConstraintMaker *make) {
     				//productView是containView上最下面的一个子控件
            make.bottom.equalTo(self.productView.bottom);
    }];
    

通过以上方式,不需要再设置scrollview的contentSize就可以实现滑动,而且是正正好的滑动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值