iOS开发之Tips(一)

  • 快速设置UITextField的占位字符颜色和大小以及水平方向,由此观之,UILabel的属性都可以设置。现在已经不支持这样做了,会崩溃。记录一下。

    1
    2
    3
    [_searchTextField setValue:[UIColor blackColor] forKeyPath:@"_placeholderLabel.textColor"];
    [_searchTextField setValue:[UIFont systemFontOfSize:12] forKeyPath:@"_placeholderLabel.font"];
    [_searchTextField setValue:NSTextAlignmentCenter forKeyPath:@"_placeholderLabel.textAlignment"];
  • UIButton内部做图片和文字约束,可以起到设置图片和文字位置的效果。

    1
    2
    3
    4
    5
    [button.imageView mas_makeConstraints:^(MASConstraintMake *make){
    make.left.top.bottom.equalTo(button);
    make.size.equalTo(@(CGSizeMake(18, 18)));
    make.right.equalTo(button.titleLabel.mas_left).offset(-5);
    }];
  • UITextView文本变化监听的三种方式

    1.代理方法回调
    - (void)textViewDidChange:(UITextView *)textView;

    2.通知。监听名为UITextViewDidChangeNotification的通知。

    3.KVO监听@”text”属性。

  • 使用第三方库Masonry注意的点

    1. 做约束之前必须添加到父view上,子类之间相互约束需要有共同的父view。
    2. 数值类多使用mas_equal,属性类多使用equal
  • 更高效的判断是否是奇数偶数

1
2
3
4
NSInteger a = 9;
NSInteger b = 4;
NSLog(@"%ld, %ld", a & 1, b & 1);
输出结果:10

同或运算。我们知道,整数转化为二进制数后,末位为1就是奇数,末位是0就是偶数。同或运算的规则是相同则为真,不同则为假。让数字与1做同或运算,即可得到整数是奇数还是偶数。且效率比除2去余数要快。

  • 同或运算真值表
a b a⊙b
0 0 1
1 1 1
0 1 0
1 0 0
  • 一个有趣的计算

        UI设计中常常会碰到互斥按钮,如果互斥按钮的个数有两个,就可以试试这个有趣的计算。

        在iOS中, UIView类控件都可以设置tag值,此时我们可以给其中一个设置tag为1,另一个设置为2,他们拥有共同的父view。那么我们如何通过其中一个view访问另一个view呢?下面这个式子就可以了。

    1
    2
    NSInteger tag = tagOne;
    NSInteger otherTag = !(tagOne - 1) + 1;
这样,无论`tagOne`是1还是2,都可以得到它的对方,也就是2和1。

附上一个demo:[RadioButton](https://github.com/cyruschang/RadioButtonWithTwoOptions)
© 2021 cyruschang All Rights Reserved.
Theme by hiero