iOS开发小技巧

UINavgationController 的返回按钮被自定义之后,系统的左滑pop功能就会失效。

解决:在控制器里加上这行代码

self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;

UIButton

给按钮设置了image和title结果发现,image太大?文字位置不理想?

就像这样


before.png

试试设置按钮的imageEdgeInsets和contentEdgeInsets两个属性吧。请看


after.png

想要设置按钮的文字左对齐?

button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

导航控制器popViewController时,导航栏闪黑?

请调用: [self.navigationController setNavigationBarHidden:0 animated:1];

如果你在点击tabBar时,发现标签的顺序鬼使神差的迷之错位了,那请检查是不是在哪个控制器里面把self.title设置为空了。

想要隐藏tableView的header吗试试下面的方法吧

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {    
CGFloat sectionHeaderHeight = 160;   
 if(scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {       
 scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);   
 } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {  
      scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);    
}
}

AutoLayout状态下,执行完viewDidLoad、viewWillAppear等方法后,还会执行viewDidLayoutSubviews方法, 在这个方法中,我们可以重新对某个子View,甚至某个ChildViewController的View进行Frame调整

UILabel

设置字体加粗:setFont:[UIFont fontWithName:@"Helvetica-Bold" size:11]

改变 Helvetica-Bold 以设置不同的字体

想要在同一个label中显示不同颜色的文字吗?

NSString *ori_str = [NSString stringWithFormat:@"您评论了%@的作品",self.user2The.nick];       
 NSRange range = [ori_str rangeOfString:self.user2The.nick];        NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:ori_str];      
  [attribute addAttributes:@{NSForegroundColorAttributeName: [UIColor redColor]} range:range];        
[self.systemInfoLabel setText:ori_str];
[self.systemInfoLabel setAttributedText:attribute];

百度地图

如果调用api 程序卡死,请检查是否 【BMKMapManager start 】

如果打开地图发现满满的网格,那一定是appkey 与 bundle id 不对应。

改变导航栏字体颜色。

直接设置 navigationBar

setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}

App Store 地址拼接规则

https://itunes.apple.com/gb/app/yi-dong-cai-bian/id(apple ID)?mt=8

长按UITextField弹出的pop为英文

解决方法:修改Info.plist中的Localization native development region为China

UITextField 站位文字颜色

两种方法

 // 1.attributedPlaceholder
//    _username.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"用户名" attributes:@{NSForegroundColorAttributeName: color1}];
 // 2.KVC
//   [_username setValue:color1 forKeyPath:@"_placeholderLabel.textColor"];

限制UITextField 输入位数

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    if (textField == self.inpt) {
        if (string.length == 0) return YES;
        NSInteger existedLength = textField.text.length;
        NSInteger selectedLength = range.length;
        NSInteger replaceLength = string.length;
        if (existedLength - selectedLength + replaceLength > 3) {
            return NO;
        }
    }
    
    return YES;
}

应用内可随时切换语言时,MJRefresh下拉文字的处理

NSBundle+MJRefresh.m
//        NSString *language = [NSLocale preferredLanguages].firstObject;// 框架源代码
        NSString *language = [[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"];
并且注掉 if (bundle == nil)

table view cell 高度代理方法先于cell的返回方法执行

你可能感兴趣的:(iOS开发小技巧)