iOS开发常用的代码

本文汇总了iOS开发中UI实现的各种技巧,包括切换tab bar、自定义视图切换动画、计算字符串长度、清除UISearchBar背景及UIImageView图像缓存等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



string = [[array valueForKey:@"description"] 

componentsJoinedByString:@","]; 

 

 

 

 

 

 

17. TabController

随意切换

tab bar

 

 

[self.tabBarController setSelectedIndex:tabIndex]; 

 

或者

 

self.tabBarController.selectedIndex = tabIndex; 

 

或者实现下面的

delegate

来扑捉

tab bar

的事件:

 

 

代码

-(BOOL) tabBarController:(UITabBarController *)tabBarController 

shouldSelectViewController:(UIViewController *)viewController 

 

 

 

 

 

 

 

if ([viewController.tabBarItem.title isEqualToString: 

NSLocalizedString(@"Logout",nil)]) 

 

 

 

 

 

 

 

[self showLogout]; 

 

 

 

 

 

 

 

return NO; 

 

 

 

 

 

 

return YES;} 

 

 

 

 

 

18. 

自定义

View

之间切换动画:

 

代码

 

- (void) pushController: (UIViewController*) controller 

 

 

 

 

 

 

 

 

 

withTransition: (UIViewAnimationTransition) transition 

 

 

 

 

[UIView beginAnimations:nil context:NULL]; 

 

 

 

 

[self pushViewController:controller animated:NO]; 

 

 

 

 

[UIView setAnimationDuration:.5]; 

 

 

 

 

[UIView setAnimationBeginsFromCurrentState:YES]; 

 

 

 

 

[UIView setAnimationTransition:transition forView:self.view cache:YES]; 

 

 

 

 

[UIView commitAnimations]; 

 

CATransition *transition = [CATransition animation]; 

transition.duration = kAnimationDuration; 

transition.timingFunction = [CAMediaTimingFunction 

functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

transition.type = kCATransitionPush; 

transition.subtype = kCATransitionFromTop; 

transitioning = YES; 

transition.delegate = self; 

[self.navigationController.view.layer addAnimation:transition forKey:nil]; 

 

self.navigationController.navigationBarHidden = NO; 

[self.navigationController pushViewController:tableViewController 

animated:YES]; 

 

 

 

 

 

 

20.

计算字符串长度:

 

 

CGFloat w = [title sizeWithFont:[UIFont fontWithName:@"Arial" 

size:18]].width; 

 

 

 

 

23.

在使用

UISearchBar

时,将背景色设定为

clearColor

,或者将

translucent

YES

都不能使背景透明,

经过一番研究,

发现了一种超级简单和实用的方法:

 

 

 

[[searchbar.subviews objectAtIndex:0]removeFromSuperview]; 

 

 

背景完全消除了,只剩下搜索框本身了。

 

 

 

 

24. 

 

图像与缓存

 

 

UIImageView *wallpaper = [[UIImageView alloc] initWithImage: 

 

 

 

 

 

 

 

 

 

[UIImage imageNamed:@"icon.png"]]; // 

会缓存图片

 

 

UIImageView *wallpaper = [[UIImageView alloc] initWithImage: 

 

 

 

 

 

 

 

 

 

[UIImage imageWithContentsOfFile:@"icon.png"]]; // 

不会缓存图片

 

 

 

 

25. iphone-

常用的对视图图层

(layer)

的操作

 

 

对图层的操作:

 

 

(1.

给图层添加背景图片:

 

myView.layer.contents = (id)[UIImage 

imageNamed:@"view_BG.png"].CGImage; 

 

(2.

将图层的边框设置为圆脚

 

myWebView.layer.cornerRadius = 8; 

myWebView.layer.masksToBounds = YES; 

 

(3.

给图层添加一个有色边框

 

myWebView.layer.borderWidth = 5; 

myWebView.layer.borderColor = [[UIColor colorWithRed:0.52 green:0.09 

blue:0.07 alpha:1] CGColor]; 

 

 

 

将多个字符替换成空

 

NSCharacterSet *cs = [NSCharacterSet 

characterSetWithCharactersInString:@"1234567890|"]; 

NSString 

*resultstr 

[[yourstr 

componentsSeparatedByCharactersInSet:cs] 

componentsJoinedByString:@" "];

string = [[array valueForKey:@"description"] 

componentsJoinedByString:@","]; 

 

 

 

 

 

 

17. TabController

随意切换

tab bar

 

 

[self.tabBarController setSelectedIndex:tabIndex]; 

 

或者

 

self.tabBarController.selectedIndex = tabIndex; 

 

或者实现下面的

delegate

来扑捉

tab bar

的事件:

 

 

代码

-(BOOL) tabBarController:(UITabBarController *)tabBarController 

shouldSelectViewController:(UIViewController *)viewController 

 

 

 

 

 

 

 

if ([viewController.tabBarItem.title isEqualToString: 

NSLocalizedString(@"Logout",nil)]) 

 

 

 

 

 

 

 

[self showLogout]; 

 

 

 

 

 

 

 

return NO; 

 

 

 

 

 

 

return YES;} 

 

 

 

 

 

18. 

自定义

View

之间切换动画:

 

代码

 

- (void) pushController: (UIViewController*) controller 

 

 

 

 

 

 

 

 

 

withTransition: (UIViewAnimationTransition) transition 

 

 

 

 

[UIView beginAnimations:nil context:NULL]; 

 

 

 

 

[self pushViewController:controller animated:NO]; 

 

 

 

 

[UIView setAnimationDuration:.5]; 

 

 

 

 

[UIView setAnimationBeginsFromCurrentState:YES]; 

 

 

 

 

[UIView setAnimationTransition:transition forView:self.view cache:YES]; 

 

 

 

 

[UIView commitAnimations]; 

 

CATransition *transition = [CATransition animation]; 

transition.duration = kAnimationDuration; 

transition.timingFunction = [CAMediaTimingFunction 

functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

transition.type = kCATransitionPush; 

transition.subtype = kCATransitionFromTop; 

transitioning = YES; 

transition.delegate = self; 

[self.navigationController.view.layer addAnimation:transition forKey:nil]; 

 

self.navigationController.navigationBarHidden = NO; 

[self.navigationController pushViewController:tableViewController 

animated:YES]; 

 

 

 

 

 

 

20.

计算字符串长度:

 

 

CGFloat w = [title sizeWithFont:[UIFont fontWithName:@"Arial" 

size:18]].width; 

 

 

 

 

23.

在使用

UISearchBar

时,将背景色设定为

clearColor

,或者将

translucent

YES

都不能使背景透明,

经过一番研究,

发现了一种超级简单和实用的方法:

 

 

 

[[searchbar.subviews objectAtIndex:0]removeFromSuperview]; 

 

 

背景完全消除了,只剩下搜索框本身了。

 

 

 

 

24. 

 

图像与缓存

 

 

UIImageView *wallpaper = [[UIImageView alloc] initWithImage: 

 

 

 

 

 

 

 

 

 

[UIImage imageNamed:@"icon.png"]]; // 

会缓存图片

 

 

UIImageView *wallpaper = [[UIImageView alloc] initWithImage: 

 

 

 

 

 

 

 

 

 

[UIImage imageWithContentsOfFile:@"icon.png"]]; // 

不会缓存图片

 

 

 

 

25. iphone-

常用的对视图图层

(layer)

的操作

 

 

对图层的操作:

 

 

(1.

给图层添加背景图片:

 

myView.layer.contents = (id)[UIImage 

imageNamed:@"view_BG.png"].CGImage; 

 

(2.

将图层的边框设置为圆脚

 

myWebView.layer.cornerRadius = 8; 

myWebView.layer.masksToBounds = YES; 

 

(3.

给图层添加一个有色边框

 

myWebView.layer.borderWidth = 5; 

myWebView.layer.borderColor = [[UIColor colorWithRed:0.52 green:0.09 

blue:0.07 alpha:1] CGColor]; 

 

 

 

将多个字符替换成空

 

NSCharacterSet *cs = [NSCharacterSet 

characterSetWithCharactersInString:@"1234567890|"]; 

NSString 

*resultstr 

[[yourstr 

componentsSeparatedByCharactersInSet:cs] 

componentsJoinedByString:@" "];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值