美文网首页
ios注意问题

ios注意问题

作者: FengxinLi | 来源:发表于2017-12-21 20:49 被阅读12次

    1.使用UIAppearance注意的问题

    如果不熟悉可以点击了解, UIAppearance它的目的就是设置全局显示样式, 我们知道只要带UI_APPEARANCE_SELECTOR这个宏, 我们就可以使用UIAppearance比如这样设置:

    - (void)setBackgroundImage:(nullable UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;

    - (nullable UIImage *)backgroundImageForState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;

    我们知道UIBarButtonItem它是有状态的比如UIControlStateNormal或者是UIControlStateDisabled状态

    如果通过UIAppearance设置UIControlStateDisabled状态下的颜色是不好使的, 因为使用appearance会有一些延迟, 导致在不同状态下的颜色不好使, 我们只要强制刷新一下就可以了:

    // 刷新

    [self.navigationController.navigationBar layoutIfNeeded];

    所以以后使用UIAppearance在某个状态下设置颜色,字体等不好使, 只需要在对应的位置用layoutIfNeeded刷新一下就可以了!

    2. UITextField使用注意

    先贴一个UITextField如何设置占位文字的颜色, 如果不先设置占位文字, 占位文字的颜色是不管用的:

    //先设置占位文字

    textField.placeholder = @"设置了占位文字内容以后, 才能设置占位文字的颜色";

    //占位文字颜色

    [textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];

    大家监听UITextField文字的改变会用到代理:

    #pragma mark -

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    //这里监听文字改变

    return YES;

    }

    当我们输入字母但是没确认的时候,键盘上面是中文的时候,当我们选择中文的时候上面的方法是没有调用的

    所以我们要监听UITextField的文字改变不建议使用代理, 我们用addTarget监听文字

    [textField addTarget:self action:@selector(textEditingChanged) forControlEvents:UIControlEventEditing

    相关文章

      网友评论

          本文标题:ios注意问题

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