自定义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显示有问题。