iOS开发常用的代码

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


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:@" "];

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值