iphone技术总结
1. 让下面图层可以触摸
searchImage.exclusiveTouch = YES;//第一层 searchImage.userInteractionEnabled = NO; myMapView.exclusiveTouch = NO;//第二层 myMapView.userInteractionEnabled = YES;
2. 设置状态栏
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationSlide];//隐藏状态栏
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent];//设置状态栏透明
3. 判断网络是否连接
+(BOOL)isExistenceNetwork{
BOOL isExistenceNetwork;
Reachability *reachability=[Reachability reachabilityWithHostName:@""];
switch ([reachability currentReachabilityStatus]) {
case NotReachable:
isExistenceNetwork=FALSE;
break;
case ReachableViaWWAN:
isExistenceNetwork=TRUE;
break;
case ReachableViaWiFi:
isExistenceNetwork=TRUE;
break;
}
return isExistenceNetwork;
}
注:需要导入Reachability类
4. 实时通知网络状况
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
....................
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
reachability=[[Reachability reachabilityWithHostName:@"www.baidu.com"] retain];
[reachability startNotifier];
return YES;
}
-(void)reachabilityChanged:(NSNotification *)notification{
Reachability *curReachability=[notification object];
NSParameterAssert([curReachability isKindOfClass:[Reachability class]]);
NetworkStatus curStatus=[curReachability currentReachabilityStatus];
if (curStatus==NotReachable) {
[DOIN_Util logFax:@"连接失败"];
}
}
注:以上需要Reachability类在2.0以上才可以适用
6. 显示和隐藏UITabBarController
secondViewController.hidesBottomBarWhenPushed=YES
其中的secondViewController为需要隐藏tabbar的视图,如果全部视图都需要隐藏,那么可以使用self.hidesBottomBarWhenPushed=YES来实现。
注:缺点就是隐藏tabbar的视图不能在显示tabbar。
7. UINavigationController显示为透明状态或者隐藏
navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent
其中 navigationController为一个UINavigationController对象,通过上述代码可以使导航栏背景处于透明状态。
[self.navigationController setNavigationBarHidden:NO animated:YES];
上述代码可以把navigationController隐藏起来,如果把其中的NO改为YES就可以显示出来
8. UINavigationController中的toolbar设置透明 [self.navigationController.toolbar setTranslucent:YES];设置为透明
9. 在iPhone App中提醒用户打分或写评价的方法
用户使用了软件却不到 App Store 打分或是写评论是很令开发者头疼的。下面这个方法能在 iPhone App 中集成提醒功能,弹出文字框来提示没有打分的用户。
主要代码
[[CloudReview sharedReview]reviewFor:395519376];
CloudReview.h
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h>
@interface CloudReview : NSObject { int m_appleID; } +(CloudReview*)sharedReview; -(void) reviewFor:(int)appleID; -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex; @end
CloudReview.m
#import "CloudReview.h" @implementation CloudReview static CloudReview* _sharedReview = nil; +(CloudReview*)sharedReview { @synchronized([CloudReview class]) { if (!_sharedReview) [[self alloc] init]; return _sharedReview; } return nil; } +(id)alloc { @synchronized([CloudReview class]) { NSAssert(_sharedReview == nil, @"Attempted to allocate a second instance of a singleton."); _sharedReview = [super alloc]; return _sharedReview; } return nil; } -(void)reviewFor:(int)appleID { m_appleID = appleID; BOOL neverRate = [[NSUserDefaults standardUserDefaults] boolForKey:@"neverRate"]; if(neverRate != YES) { //Show alert here UIAlertView *alert; alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"rate_title",@"Rate My Appication")