iOS开发小细节

自定义View

  • 覆写init,初始化参数
  • 覆写layoutSubViews,在里面设置subview的布局

自定义ViewController

  • 覆写init,初始化参数
  • 覆写viewDidLoad,在里面设置布局

TableView设置分隔线

  self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

设置导航栏返回按钮

  • 要添加在上级ViewController的ViewDidLoad里面
//设置返回按钮
    UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] init];
    backBarButtonItem.title = @"返回";
    self.navigationItem.backBarButtonItem = backBarButtonItem;

UIWebView设置

  • 基本设置
self.webView = [[UIWebView alloc] init];
    self.webView.backgroundColor = [UIColor whiteColor];
    self.webView.opaque = NO;
    self.webView.scalesPageToFit = YES;
    self.webView.scrollView.bounces = YES;
    self.webView.delegate = self;
  • 内存清理
//在webViewDidFinishLoad
- (void)cleanWhenDidFinishLoad {
    [[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];
    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitDiskImageCacheEnabled"];
    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitOfflineWebApplicationCacheEnabled"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

//在dealloc
- (void)cleanForDealloc {
    [self stopLoading];
    [self loadHTMLString:@"" baseURL:nil];
    self.delegate = nil;
    [self removeFromSuperview];
    [[NSURLCache sharedURLCache] removeAllCachedResponses];
    [[NSURLCache sharedURLCache] setDiskCapacity:0];
    [[NSURLCache sharedURLCache] setMemoryCapacity:0];
}

从子页面返回时隐藏toolbar

  • 写在viewDidAppear
self.navigationController.toolbarHidden = YES;

当要进入子页面时隐藏tabbar

  • 写在[self.navigationController pushViewController:contentVC animated:YES];前面
contentVC.hidesBottomBarWhenPushed = YES;

table cell去掉选择效果

self.selectionStyle = UITableViewCellSelectionStyleNone;

UIViewController视图不被navbar 和 tabbar遮挡

self.edgesForExtendedLayout = UIRectEdgeNone;

UIButton去掉高亮效果

button.adjustsImageWhenHighlighted = NO;

UITextField键盘return键操作

<UITextFieldDelegate>
self.textField.delegate = self;
- (BOOL)textFieldShouldReturn:(UITextField *)textField {

    NSInteger nextTag = textField.tag + 1;

    UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
    if (nextResponder) {
        [nextResponder becomeFirstResponder];
    } else {
        [textField resignFirstResponder];
    }
    return NO;
}

点击空白收起键盘

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                   initWithTarget:self
                                   action:@selector(viewSingleTap:)];
tap.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:tap];
- (void)viewSingleTap:(id)sender {
    [self.view endEditing:YES];
}

动态改变图片颜色

UIImageView *deleteImageView = [[UIImageView alloc] init];
UIImage *deleteImage = [UIImage imageNamed:@"DeleteButton.png"];
deleteImageView.image = [deleteImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
deleteImageView.tintColor = [UIColor red];

从隐藏UINavigationBar的界面跳到未隐藏的界面

假设B为隐藏UINavigationBar的界面,A、C为未隐藏界面。
显示顺序 A->B->C。

// A和C界面 显示navBar
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}
// B界面 隐藏navBar
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

animated一定要设置为YES,不然当使用滑动手势返回时navBar显示有问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值