美文网首页
iOS 实用小知识

iOS 实用小知识

作者: 彭小先生 | 来源:发表于2017-07-19 11:10 被阅读0次

    1.给button设置圆角

    button.clipsToBounds=YES;
    button.layer.cornerRadius=30;//这里的30是你想设置的圆角大小      
    [button.layer setBorderWidth:0.5];//设置按钮分割线
    [button.layer setBorderColor:[UIColor grayColor].CGColor];//分割线颜色
    

    2.cell分割线从图片下方开始

    cell.separatorInset = UIEdgeInsetsZero;
    

    3.cell点击后选中的效果消失
    在选中的代理方法中加入以下代码即可

    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    

    4.键盘弹出和消失时相应改变输入框的高度(view里面有个tabbleView)

    //监听键盘的弹出状态,整个view进行商上移
        [[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardWillChangeFrameNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
            //键盘的Y值
            CGFloat endY = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].origin.y;
            //视图上移后的Y值
            CGFloat temY = endY - self.view.bounds.size.height;
            
            //视图的frame
            self.view.frame = CGRectMake(0, temY, self.view.bounds.size.width, self.view.bounds.size.height);
            [UIView animateWithDuration:[note.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{
                [self.view setNeedsLayout];
            }];
        }];
    
    //在tabbleview代理方法中让view不再改变,不编辑状态
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
    {
        [self.view endEditing:YES];
    }
    
    

    5.降低屏幕的亮度
    [[UIScreen mainScreen] setBrightness: value];//value:value就是屏幕的亮度值 这个值介于0和1之间
    注:另外 这个方法 会即时刷新 无需手动刷新 但这个方法是调整整个手机界面的亮度的 并不仅仅是某个app的亮度 也就是说这个亮度就是在你完全退出这个app后还是会保持的 所以当我们不需要这个亮度继续保持的时候 我们需要在app的代理方法里做些处理 :

    //这个方法会在app失去激活状态的时候调用  比如说程序进入后台
    
    - (void)applicationWillResignActive:(UIApplication *)application {
    
        [[UIScreen mainScreen] setBrightness: 0.5];//0.5是自己设定认为比较合适的亮度值
    
    }
    //获取当前屏幕的亮度:
    
    CGFloat *currentLight = [[UIScreen mainScreen] brightness];
    
     另外,屏幕的亮度调节只能在真机上看到效果 在模拟器上看不到效果
    

    6.tabbleView自动滚动到底部

    //滚动到底部
    - (void)scrollToBottom
    {
        [_chatView setContentOffset:CGPointMake(0, CGFLOAT_MAX)];
    }
    

    7.有时候我们并不知道承载label的大小,因为上面的文字多少我们不能确定。这样我们就需要根据文字的多少来计算这个label的大小,从而设置合适的Frame。

    CGSize textContentSize = [chat.textContent boundingRectWithSize:CGSizeMake(textMaxW, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:TextFont} context:nil].size;
    

    这里需要知道label的宽度和字体的大小。希望对大家有所帮助。

    8.根据story board来加载控制器

    // 1.获取当前的StoryBoard面板  
    UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];  
      
    // 2.通过标识符找到对应的页面  
    UIViewController *vc = [storyBoard instantiateViewControllerWithIdentifier:@"ID"];  
    

    9.改变cell选中状态对勾的颜色 UITableViewCellAccessoryCheckmark
    cell.tintColor = mainColor;//改变选中对勾的颜色

    10.原生cell固定图片的大小

     CGSize itemSize = CGSizeMake(40, 40);
     UIGraphicsBeginImageContextWithOptions(itemSize, NO, UIScreen.mainScreen.scale);
     CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
     [cell.imageView.image drawInRect:imageRect];
     cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
     UIGraphicsEndImageContext();
    

    11.获取当前页面的VC

    - (UIViewController *)topViewController {
        UIViewController *resultVC;
        resultVC = [self _topViewController:[[UIApplication sharedApplication].keyWindow rootViewController]];
        while (resultVC.presentedViewController) {
            resultVC = [self _topViewController:resultVC.presentedViewController];
        }
        return resultVC;
    }
    
    - (UIViewController *)_topViewController:(UIViewController *)vc {
        if ([vc isKindOfClass:[UINavigationController class]]) {
            return [self _topViewController:[(UINavigationController *)vc topViewController]];
        } else if ([vc isKindOfClass:[UITabBarController class]]) {
            return [self _topViewController:[(UITabBarController *)vc selectedViewController]];
        } else {
            return vc;
        }
        return nil;
    }
    //使用
        UIViewController * topViewController = [self topViewController];
    
    

    相关文章

      网友评论

          本文标题:iOS 实用小知识

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