1.在自定義View中跳轉(zhuǎn)到其他控制器
[[self viewController].navigationController pushViewController:allPatientVC animated:YES];
- (UIViewController *)viewController {
for (UIView* next = [self superview]; next; next = next.superview) {
UIResponder *nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]]) {
return (UIViewController *)nextResponder;
}
}
return nil;
}
2.設(shè)置UITableView分割線位置
//1.調(diào)整(iOS7以上)表格分隔線邊距
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
self.tableView.separatorInset = UIEdgeInsetsZero;
}
//2.調(diào)整(iOS8以上)view邊距(或者在cell中設(shè)置preservesSuperviewLayoutMargins,二者等效)
if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
self.tableView.layoutMargins = UIEdgeInsetsZero;
}
3.修改UITextField的占位符的字體顏色和大小
方法1:利用富文本
@property (weak, nonatomic) IBOutlet UITextField *textField;
NSDictionary *dic = @{NSForegroundColorAttributeName:[UIColor magentaColor], NSFontAttributeName:[UIFont systemFontOfSize:15]};
self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"歡迎回來" attributes:dic];
self.textField.tintColor = [UIColor cyanColor];
方法2:KVC
self.textField.placeholder = @"歡迎回來!";
[self.textField setValue:[UIColor magentaColor] forKeyPath:@"_placeholderLabel.textColor"]
[self.textField setValue:[UIFont systemFontOfSize:15] forKeyPath:@"_placeholderLabel.font"];
self.textField.tintColor = [UIColor greenColor];
4.修改導(dǎo)航欄item的左右間距
UIBarButtonItem *rightSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
rightSpace.width = -7;
self.navigationItem.rightBarButtonItems = @[rightSpace,rightItem];
5.UIButton 左邊圖片,右邊文字
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(100, 100, 100, 50);
button.backgroundColor = [UIColor clearColor];
//設(shè)置button正常狀態(tài)下的圖片
[button setImage:[UIImage imageNamed:@"_star_normal.png"] forState:UIControlStateNormal];
//設(shè)置button高亮狀態(tài)下的圖片
[button setImage:[UIImage imageNamed:@"_star_highlighted.png"] forState:UIControlStateHighlighted];
//設(shè)置button正常狀態(tài)下的背景圖
[button setBackgroundImage:[UIImage imageNamed:@"_normal.png"] forState:UIControlStateNormal];
//設(shè)置button高亮狀態(tài)下的背景圖
[button setBackgroundImage:[UIImage imageNamed:@"_highlighted.png"] forState:UIControlStateHighlighted];
//button圖片的偏移量,距上左下右分別(10, 10, 10, 60)像素點
button.imageEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 60);
[button setTitle:@"南瓜瓜" forState:UIControlStateNormal];
//button標(biāo)題的偏移量,這個偏移量是相對于圖片的
button.titleEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 0);
//設(shè)置button正常狀態(tài)下的標(biāo)題顏色
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
//設(shè)置button高亮狀態(tài)下的標(biāo)題顏色
[button setTitleColor:[UIColor greenColor] forState:UIControlStateHighlighted];
button.titleLabel.font = [UIFont systemFontOfSize:14];
[self.view addSubview:button];
6.檢查字符串是否為url
- (NSString *)getCompleteWebsite:(NSString *)urlStr{
NSString *returnUrlStr = nil;
NSString *scheme = nil;
assert(urlStr != nil);
urlStr = [urlStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
if ( (urlStr != nil) && (urlStr.length != 0) ) {
NSRange urlRange = [urlStr rangeOfString:@"://"];
if (urlRange.location == NSNotFound) {
returnUrlStr = [NSString stringWithFormat:@"http://%@", urlStr];
} else {
scheme = [urlStr substringWithRange:NSMakeRange(0, urlRange.location)];
assert(scheme != nil);
if ( ([scheme compare:@"http" options:NSCaseInsensitiveSearch] == NSOrderedSame)
|| ([scheme compare:@"https" options:NSCaseInsensitiveSearch] == NSOrderedSame) ) {
returnUrlStr = urlStr;
} else {
//不支持的URL方案
}
}
}
return returnUrlStr;
}
7.秒轉(zhuǎn)換為時分秒
-(NSString *)getMMSSFromSS:(NSString *)totalTime{
NSInteger seconds = [totalTime integerValue];
//format of hour
NSString *str_hour = [NSString stringWithFormat:@"%02ld",seconds/3600];
//format of minute
NSString *str_minute = [NSString stringWithFormat:@"%02ld",(seconds%3600)/60];
//format of second
NSString *str_second = [NSString stringWithFormat:@"%02ld",seconds%60];
//format of time
NSString *format_time = [NSString stringWithFormat:@"%@:%@:%@",str_hour,str_minute,str_second];
return format_time;
}`
8.禁用系統(tǒng)左滑返回
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// 禁用返回手勢
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
// 開啟返回手勢
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
}
9.判斷UIImage圖片是否是同一張圖片(在寫UIImagePickerController中要判斷之前的image和當(dāng)下選擇的uiimage是不是一個image)
UIImage* image= info[UIImagePickerControllerOriginalImage];
UIImageView* imageView=[[UIImageView alloc]initWithFrame:CGRectMake(self.imageViews.count*80.0, 0, 80, 80)];
imageView.image=image;
for (UIImageView* subimage in self.imageViews) {
if ([UIImagePNGRepresentation(subimage.image) isEqual:UIImagePNGRepresentation(image)]) {
UIAlertView* alert=[[UIAlertView alloc]initWithTitle:@" 此圖片已經(jīng)選擇過,選擇其他圖片" message:@" 此圖片已經(jīng)選擇過,選擇其他圖片" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"ok ", nil];
[alert show];
return;
}
}
10.真色彩顯示
真彩色的顯示會根據(jù)光感應(yīng)器來自動的調(diào)節(jié)達(dá)到特定環(huán)境下顯示與性能的平衡效果,如果需要這個功能的話,可以在info.plist里配置(在Source Code模式下):
<key>UIWhitePointAdaptivityStyle</key>
它有五種取值,分別是:
<string>UIWhitePointAdaptivityStyleStandard</string> // 標(biāo)準(zhǔn)模式
<string>UIWhitePointAdaptivityStyleReading</string> // 閱讀模式
<string>UIWhitePointAdaptivityStylePhoto</string> // 圖片模式
<string>UIWhitePointAdaptivityStyleVideo</string> // 視頻模式
<string>UIWhitePointAdaptivityStyleStandard</string> // 游戲模式
也就是說如果你的項目是閱讀類的,就選擇UIWhitePointAdaptivityStyleReading這個模式,五種模式的顯示效果是從上往下遞減,也就是說如果你的項目是圖片處理類的,你選擇的是閱讀模式,給選擇太好的效果會影響性能.
11.UIRefreshControl
在iOS 10 中, UIRefreshControl可以直接在UICollectionView和UITableView中使用,并且脫離了UITableViewController.現(xiàn)在RefreshControl是UIScrollView的一個屬性.
使用方法:
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(loadData) forControlEvents:UIControlEventValueChanged];
collectionView.refreshControl = refreshControl;
12 UIImage圖片轉(zhuǎn)成Base64字符串:
UIImage *originImage = [UIImage imageNamed:@"Cover.png"];
NSData *data = UIImageJPEGRepresentation(originImage, 1.0f);
NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
NSLog(@"encodedImageStr==%@",encodedImageStr);
//Base64字符串轉(zhuǎn)UIImage圖片:
NSData *decodedImageData = [[NSData alloc]initWithBase64EncodedString:encodedImageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
UIImage *decodedImage = [UIImage imageWithData:decodedImageData];
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(60, 100, 200, 400)];
[imgView setImage:decodedImage];
[self.view addSubview:imgView];
NSLog(@"decodedImage==%@",decodedImageData);
13.iOS如何快速得到數(shù)組所有元素累加結(jié)果,平均值和最大最小值
NSArray *values = @[@72, @78, @75, @70, @72, @73, @77, @78, @75, @70, @72, @73, @87, @78, @75, @70, @72];
NSNumber *avg = [values valueForKeyPath:@"@avg.self"];
NSNumber *sum = [values valueForKeyPath:@"@sum.self"];
NSNumber *max = [values valueForKeyPath:@"@max.self"];
NSNumber *min = [values valueForKeyPath:@"@min.self"];
14.隱藏導(dǎo)航欄
@interface WLHomePageController () <UINavigationControllerDelegate>
@end
@implementation WLHomePageController
#pragma mark - lifeCycle
- (void)viewDidLoad {
[super viewDidLoad];
// 設(shè)置導(dǎo)航控制器的代理為self
self.navigationController.delegate = self;
}
#pragma mark - UINavigationControllerDelegate
// 將要顯示控制器
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
// 判斷要顯示的控制器是否是自己
BOOL isShowHomePage = [viewController isKindOfClass:[self class]];
[self.navigationController setNavigationBarHidden:isShowHomePage animated:YES];
}
- (void)dealloc {
self.navigationController.delegate = nil;
}
15.防止scrollView手勢覆蓋側(cè)滑手勢
[scrollView.panGestureRecognizerrequireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer];
16.字符串中是否含有中文
+ (BOOL)checkIsChinese:(NSString *)string
{
for (int i=0; i<string.length; i++)
{
unichar ch = [string characterAtIndex:i];
if (0x4E00 <= ch && ch <= 0x9FA5)
{
return YES;
}
}
return NO;
}