架构:
logo: logo标识(在image文件夹中修改某图片名称为icon)
default: 默认页面的启动效果(在image文件夹中修改某图片名称为Default)
image:存放图片(根目录下)
4个UIViewController: CategoryViewController, PlayViewController, TimerViewController , AboutUsViewController
* CategoryViewController(目录)
tableview data
* PlayViewController(播放)
* TimerViewController(定时)
* AboutUsViewController(关于)
AppDelegate : start category module(程序开始启动目录view)
5.audio
*import frameworks: audioltoolbox.frameword & avfoundation.framework
AppDelegate.h
// // AppDelegate.h // novel_example // // Created by chenzg on 3/23/11. // Copyright (c) 2011 __MyCompanyName__. All rights reserved. // #import <UIKit/UIKit.h> #import "CategoryViewController.h" #import "PlayViewController.h" #import "TimerViewController.h" #import "AboutUsViewController.h" @interface AppDelegate : UIResponder <UIApplicationDelegate> { UIWindow *window; //button declare UIButton *btnCategory; UIButton *btnPlay; UIButton *btnTimer; UIButton *btnAboutUs; //nav UINavigationController *navCategory; UINavigationController *navPlay; UINavigationController *navTimer; UINavigationController *navAboutUs; //4 define uiviewcontroller CategoryViewController *categoryView; PlayViewController *playView; TimerViewController *timerView; AboutUsViewController *aboutUsView; UIView *viewToolBar; UIView *viewContent; } @property (strong, nonatomic) UIWindow *window; @end
AppDelegate.m
1 // 2 // AppDelegate.m 3 // novel_example 4 // 5 // Created by chenzg on 3/23/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import "AppDelegate.h" 10 11 12 13 @implementation AppDelegate 14 15 @synthesize window = _window; 16 17 18 - (void)dealloc 19 { 20 [_window release]; 21 [super dealloc]; 22 } 23 24 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 25 { 26 self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 27 // Override point for customization after application launch. 28 //self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease]; 29 //self.window.rootViewController = self.viewController; 30 31 viewContent = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; 32 viewContent .backgroundColor = [UIColor clearColor]; 33 [self.window addSubview:viewContent ]; 34 [viewContent release]; 35 36 categoryView = [[CategoryViewController alloc]init]; 37 categoryView.view.frame = CGRectMake(0, 0, 320, 436); 38 navCategory = [[UINavigationController alloc]initWithRootViewController:categoryView]; 39 [viewContent addSubview:navCategory.view]; 40 41 viewToolBar = [[UIView alloc]initWithFrame:CGRectMake(0, 410, 320, 47)]; 42 viewToolBar.backgroundColor = [UIColor clearColor]; 43 [_window addSubview:viewToolBar]; 44 [viewToolBar release]; 45 46 UIImageView *viewToolBarImg = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 47)]; 47 viewToolBarImg.image = [UIImage imageNamed:@"首页_按钮底图.png"]; 48 [viewToolBar addSubview:viewToolBarImg]; 49 [viewToolBarImg release]; 50 51 //category view 52 53 btnCategory = [UIButton buttonWithType:UIButtonTypeCustom]; 54 btnCategory.frame = CGRectMake(30, 5, 51, 37); 55 btnCategory.tag =1; 56 [btnCategory setAdjustsImageWhenDisabled:YES]; 57 [btnCategory setBackgroundImage:[UIImage imageNamed:@"目录.png"] forState:UIControlStateNormal]; 58 [btnCategory addTarget:self action:@selector(categoryAction) forControlEvents:UIControlEventTouchDown]; 59 [viewToolBar addSubview:btnCategory]; 60 61 62 //play view 63 64 btnPlay = [UIButton buttonWithType:UIButtonTypeCustom]; 65 btnPlay.frame = CGRectMake(94, 5, 51, 37); 66 btnPlay.tag =2; 67 [btnPlay setAdjustsImageWhenDisabled:YES]; 68 [btnPlay setBackgroundImage:[UIImage imageNamed:@"播放.png"] forState:UIControlStateNormal]; 69 [btnPlay addTarget:self action:@selector(playAction) forControlEvents:UIControlEventTouchDown]; 70 [viewToolBar addSubview:btnPlay]; 71 72 //timer 73 74 btnTimer = [UIButton buttonWithType:UIButtonTypeCustom]; 75 btnTimer.frame = CGRectMake(161, 5, 51, 37); 76 btnTimer.tag =3; 77 [btnTimer setAdjustsImageWhenDisabled:YES]; 78 [btnTimer setBackgroundImage:[UIImage imageNamed:@"定时.png"] forState:UIControlStateNormal]; 79 [btnTimer addTarget:self action:@selector(timerAction) forControlEvents:UIControlEventTouchDown]; 80 [viewToolBar addSubview:btnTimer]; 81 82 //aboutus 83 btnAboutUs = [UIButton buttonWithType:UIButtonTypeCustom]; 84 btnAboutUs.frame = CGRectMake(228, 5, 51, 37); 85 btnAboutUs.tag =4; 86 [btnAboutUs setAdjustsImageWhenDisabled:YES]; 87 [btnAboutUs setBackgroundImage:[UIImage imageNamed:@"关于.png"] forState:UIControlStateNormal]; 88 [btnAboutUs addTarget:self action:@selector(aboutusAction) forControlEvents:UIControlEventTouchDown]; 89 [viewToolBar addSubview:btnAboutUs]; 90 91 92 [self.window makeKeyAndVisible]; 93 return YES; 94 } 95 96 #pragma mark ----------category action method ----------------- 97 98 99 -(void)categoryAction{ 100 101 NSLog(@"categoryAction"); 102 [btnCategory setBackgroundImage:[UIImage imageNamed:@"目录.png"] forState:UIControlStateNormal];//选择的效果 103 [btnPlay setBackgroundImage:[UIImage imageNamed:@"播放.png"] forState:UIControlStateNormal];//未选择的效果 104 [btnTimer setBackgroundImage:[UIImage imageNamed:@"定时.png"] forState:UIControlStateNormal];//未选择的效果 105 [btnAboutUs setBackgroundImage:[UIImage imageNamed:@"关于.png"] forState:UIControlStateNormal];//未选择的效果 106 107 if ((navCategory.view.hidden =YES)) { 108 // 109 navCategory.view.hidden = NO; 110 navPlay.view.hidden = YES; 111 navTimer.view.hidden = YES; 112 navAboutUs.view.hidden = YES; 113 } 114 115 116 117 } 118 #pragma mark ----------playAction method ----------------- 119 120 -(void)playAction{ 121 NSLog(@"playAction"); 122 if (playView == nil) { 123 // 124 playView = [[PlayViewController alloc]init]; 125 playView.view.frame = CGRectMake(0, 0, 320, 436); 126 navPlay = [[UINavigationController alloc]initWithRootViewController:playView]; 127 [viewContent addSubview:navPlay.view]; 128 } 129 130 [btnCategory setBackgroundImage:[UIImage imageNamed:@"目录.png"] forState:UIControlStateNormal];//未选择的效果 131 [btnPlay setBackgroundImage:[UIImage imageNamed:@"播放.png"] forState:UIControlStateNormal];//选择的效果 132 [btnTimer setBackgroundImage:[UIImage imageNamed:@"定时.png"] forState:UIControlStateNormal];//未选择的效果 133 [btnAboutUs setBackgroundImage:[UIImage imageNamed:@"关于.png"] forState:UIControlStateNormal];//未选择的效果 134 135 if ((navPlay.view.hidden =YES)) { 136 // 137 navPlay.view.hidden = NO; 138 navCategory.view.hidden = YES; 139 navTimer.view.hidden = YES; 140 navAboutUs.view.hidden = YES; 141 } 142 143 } 144 145 146 #pragma mark ----------timerAction method ----------------- 147 148 149 150 -(void)timerAction{ 151 152 NSLog(@"timerAction"); 153 154 if (timerView == nil) { 155 // 156 timerView = [[TimerViewController alloc]init]; 157 timerView.view.frame = CGRectMake(0, 0, 320, 436); 158 navTimer = [[UINavigationController alloc]initWithRootViewController:timerView]; 159 [viewContent addSubview:navTimer.view]; 160 } 161 162 [btnCategory setBackgroundImage:[UIImage imageNamed:@"目录.png"] forState:UIControlStateNormal];//未选择的效果 163 [btnPlay setBackgroundImage:[UIImage imageNamed:@"播放.png"] forState:UIControlStateNormal];//未选择的效果 164 [btnTimer setBackgroundImage:[UIImage imageNamed:@"定时.png"] forState:UIControlStateNormal];//选择的效果 165 [btnAboutUs setBackgroundImage:[UIImage imageNamed:@"关于.png"] forState:UIControlStateNormal];//未选择的效果 166 167 if ((navTimer.view.hidden =YES)) { 168 // 169 navTimer.view.hidden = NO; 170 navCategory.view.hidden = YES; 171 navPlay.view.hidden = YES; 172 navAboutUs.view.hidden = YES; 173 } 174 175 176 } 177 178 #pragma mark ----------aboutusAction method ----------------- 179 180 181 182 -(void)aboutusAction{ 183 184 NSLog(@"aboutusAction"); 185 if (aboutUsView == nil) { 186 // 187 aboutUsView = [[AboutUsViewController alloc]init]; 188 aboutUsView.view.frame = CGRectMake(0, 0, 320, 436); 189 navAboutUs = [[UINavigationController alloc]initWithRootViewController:aboutUsView]; 190 [viewContent addSubview:nav4.view]; 191 } 192 193 [btnCategory setBackgroundImage:[UIImage imageNamed:@"目录.png"] forState:UIControlStateNormal];//未选择的效果 194 [btnPlay setBackgroundImage:[UIImage imageNamed:@"播放.png"] forState:UIControlStateNormal];//未选择的效果 195 [btnTimer setBackgroundImage:[UIImage imageNamed:@"定时.png"] forState:UIControlStateNormal];//未选择的效果 196 [btnAboutUs setBackgroundImage:[UIImage imageNamed:@"关于.png"] forState:UIControlStateNormal];//选择的效果 197 198 if ((navAboutUs.view.hidden =YES)) { 199 // 200 navAboutUs.view.hidden = NO; 201 navCategory.view.hidden = YES; 202 navPlay.view.hidden = YES; 203 navTimer.view.hidden = YES; 204 } 205 206 207 208 } 209 - (void)applicationWillResignActive:(UIApplication *)application 210 { 211 /* 212 Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 213 Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 214 */ 215 } 216 217 - (void)applicationDidEnterBackground:(UIApplication *)application 218 { 219 /* 220 Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 221 If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 222 */ 223 } 224 225 - (void)applicationWillEnterForeground:(UIApplication *)application 226 { 227 /* 228 Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 229 */ 230 } 231 232 - (void)applicationDidBecomeActive:(UIApplication *)application 233 { 234 /* 235 Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 236 */ 237 } 238 239 - (void)applicationWillTerminate:(UIApplication *)application 240 { 241 /* 242 Called when the application is about to terminate. 243 Save data if appropriate. 244 See also applicationDidEnterBackground:. 245 */ 246 } 247 248 @end
CategoryViewController.h
// // CategoryViewController.h // novel_example // // Created by chenzg on 3/23/11. // Copyright (c) 2011 __MyCompanyName__. All rights reserved. // #import <UIKit/UIKit.h> @interface CategoryViewController : UIViewController<UITableViewDelegate,UITableViewDataSource> { UITableView *table; NSArray *arr; } @end
CategoryViewController.m
1 // 2 // CategoryViewController.m 3 // novel_example 4 // 5 // Created by chenzg on 3/23/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import "CategoryViewController.h" 10 #import "CustomCell.h" 11 #import "PlayViewController.h" 12 13 @implementation CategoryViewController 14 15 #pragma mark -------UITableViewDelegate method(行高): 16 17 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 18 19 return 45; 20 21 } 22 23 #pragma mark ---点击某行触发的方法 24 25 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 26 27 PlayViewController *play = [[PlayViewController alloc]init]; 28 // 29 play.arr_objindex = indexPath.row; 30 31 [self.navigationController pushViewController:play animated:YES]; 32 } 33 34 #pragma mark UITableViewDataSource method: 35 36 37 38 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 39 static NSString *cellIdentifier = @"Cell"; 40 41 CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 42 if (cell == nil) { 43 cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease]; 44 45 46 [cell setTheImage:[UIImage imageNamed:@"条纹.png"]]; 47 48 //title 49 UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(20, 0, 300, 40)]; 50 lbl.backgroundColor = [UIColor clearColor]; 51 lbl.tag = indexPath.row; 52 lbl.textColor = [UIColor blackColor]; 53 lbl.text = [arr objectAtIndex:indexPath.row];//arry indexPath.row 54 [cell addSubview:lbl]; 55 56 57 } 58 59 cell.selectionStyle = UITableViewCellSelectionStyleNone; 60 cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 61 62 return cell; 63 } 64 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 65 66 return 8;//[arr count];//array count 67 } 68 69 70 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;{ 71 return 1; 72 73 } 74 75 76 - (void)didReceiveMemoryWarning 77 { 78 // Releases the view if it doesn't have a superview. 79 [super didReceiveMemoryWarning]; 80 81 // Release any cached data, images, etc that aren't in use. 82 } 83 84 #pragma mark - View lifecycle 85 86 /* 87 // Implement loadView to create a view hierarchy programmatically, without using a nib. 88 - (void)loadView 89 { 90 } 91 */ 92 93 -(void)viewWillAppear:(BOOL)animated{ 94 [super viewWillAppear:YES]; 95 self.navigationController.navigationBar.hidden = YES; 96 97 } 98 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 99 - (void)viewDidLoad 100 { 101 [super viewDidLoad]; 102 self.navigationController.navigationBar.hidden = YES; 103 104 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 436)]; 105 imageView.image = [UIImage imageNamed:@"Default.png"]; 106 [self.view addSubview:imageView]; 107 [imageView release]; 108 109 arr = [[NSArray alloc]initWithObjects:@"秦朝帝王史话第一讲",@"秦朝帝王史话第二讲",@"秦朝帝王史话第三讲",@"秦朝帝王史话第四讲",@"秦朝帝王史话第五讲",@"秦朝帝王史话第六讲",@"秦朝帝王史话第七讲",@"秦朝帝王史话第八讲",@"秦朝帝王史话第九讲",@"秦朝帝王史话第十讲",@"秦朝帝王史话第十一讲",@"秦朝帝王史话第十二讲", nil]; 110 111 112 table = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 436) style:UITableViewStylePlain]; 113 table.scrollEnabled = YES; 114 table.delegate = self; 115 table.dataSource = self; 116 table.backgroundColor = [UIColor clearColor]; 117 118 table.separatorStyle = UITableViewCellSeparatorStyleNone;// 去掉cell的线 119 table.indicatorStyle = UIScrollViewIndicatorStyleWhite; 120 121 [self.view addSubview:table]; 122 123 124 } 125 126 127 - (void)viewDidUnload 128 { 129 [super viewDidUnload]; 130 // Release any retained subviews of the main view. 131 // e.g. self.myOutlet = nil; 132 } 133 134 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 135 { 136 // Return YES for supported orientations 137 return (interfaceOrientation == UIInterfaceOrientationPortrait); 138 } 139 140 @end
PlayViewController.h
1 // 2 // PlayViewController.h 3 // novel_example 4 // 5 // Created by chenzg on 3/23/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 #import <AVFoundation/AVFoundation.h> 11 #import <AudioToolbox/AudioToolbox.h> 12 13 14 @interface PlayViewController : UIViewController<AVAudioPlayerDelegate> 15 { 16 AVAudioPlayer *player; 17 UISlider *mySlider; 18 UISlider *mySlider1; 19 SystemSoundID soundID; 20 21 NSInteger arr_objindex; 22 NSString *str; 23 24 } 25 26 @property (nonatomic,retain)AVAudioPlayer *player; 27 @property (nonatomic,retain)UISlider *mySlider; 28 @property (nonatomic,retain)UISlider *mySlider1; 29 @property (nonatomic) NSInteger arr_objindex; 30 31 32 -(IBAction)sliderChange1:(id)sender; 33 34 35 @end
PlayViewController.m
1 // 2 // PlayViewController.m 3 // novel_example 4 // 5 // Created by chenzg on 3/23/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import "PlayViewController.h" 10 11 @implementation PlayViewController 12 @synthesize player,mySlider,mySlider1,arr_objindex; 13 14 -(void)viewWillAppear:(BOOL)animated{ 15 16 self.navigationController.navigationBar.hidden = YES; 17 18 } 19 20 -(IBAction)sliderChange1:(id)sender{ 21 22 NSLog(@"sliderChange"); 23 24 UISlider *slider = (UISlider *)sender; 25 player.currentTime = slider.value * player.duration; 26 NSLog(@"%f",player.currentTime); 27 28 NSString *str1 = [NSString stringWithFormat:@"%f",player.currentTime]; 29 UILabel *sliderLbl = [[UILabel alloc]initWithFrame:CGRectMake(10, 325, 20, 15)]; 30 sliderLbl.backgroundColor = [UIColor clearColor]; 31 sliderLbl.textColor = [UIColor redColor]; 32 sliderLbl.text = str1; 33 sliderLbl.font = [UIFont systemFontOfSize:12]; 34 [self.view addSubview:sliderLbl]; 35 [sliderLbl release]; 36 37 38 39 } 40 41 - (void)didReceiveMemoryWarning 42 { 43 // Releases the view if it doesn't have a superview. 44 [super didReceiveMemoryWarning]; 45 46 // Release any cached data, images, etc that aren't in use. 47 } 48 49 #pragma mark - View lifecycle 50 51 /* 52 // Implement loadView to create a view hierarchy programmatically, without using a nib. 53 - (void)loadView 54 { 55 } 56 */ 57 58 59 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 60 - (void)viewDidLoad 61 { 62 [super viewDidLoad]; 63 64 UIImageView *bottomImg = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 433)]; 65 bottomImg.image =[UIImage imageNamed:@"底图.png"]; 66 [self.view addSubview:bottomImg]; 67 [bottomImg release]; 68 69 UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(10, 290, 300, 96)]; 70 img.image =[UIImage imageNamed:@"首页_时间与进度轴.png"]; 71 [self.view addSubview:img]; 72 [img release]; 73 74 UILabel *leftLbl = [[UILabel alloc]initWithFrame:CGRectMake(20, 352, 20, 15)]; 75 leftLbl.backgroundColor =[UIColor clearColor]; 76 leftLbl.text =@"-"; 77 leftLbl.textColor = [UIColor yellowColor]; 78 [self.view addSubview:leftLbl]; 79 [leftLbl release]; 80 81 UILabel *rightLbl = [[UILabel alloc]initWithFrame:CGRectMake(290, 352, 20, 15)]; 82 rightLbl.backgroundColor =[UIColor clearColor]; 83 rightLbl.textColor =[UIColor yellowColor]; 84 rightLbl.text = @"+"; 85 [self.view addSubview:rightLbl]; 86 [rightLbl release]; 87 88 89 90 91 mySlider = [[UISlider alloc]initWithFrame:CGRectMake(40, 320, 240, 0)]; 92 mySlider.backgroundColor =[UIColor clearColor]; 93 mySlider.maximumValue = 50.0; 94 mySlider.minimumValue = 10.0; 95 mySlider.value = 10.0; 96 [mySlider setMaximumTrackImage:[UIImage imageNamed:@"max.png"] forState:UIControlStateNormal]; 97 [mySlider setMinimumTrackImage:[UIImage imageNamed:@"min.png"] forState:UIControlStateNormal]; 98 [mySlider setThumbImage:[UIImage imageNamed:@"thumb.png"] forState:UIControlStateNormal]; 99 [mySlider addTarget:self action:@selector(sliderChange1:) forControlEvents:UIControlEventValueChanged]; 100 101 [self.view addSubview:mySlider]; 102 103 mySlider1 = [[UISlider alloc]initWithFrame:CGRectMake(40, 350, 240, 0)]; 104 mySlider1.backgroundColor = [UIColor clearColor]; 105 mySlider1.maximumValue = 50.0; 106 mySlider1.minimumValue = 10.0; 107 mySlider1.value = 22.0; 108 [mySlider1 setMaximumTrackImage:[UIImage imageNamed:@"max.png"] forState:UIControlStateNormal]; 109 [mySlider1 setMinimumTrackImage:[UIImage imageNamed:@"min.png"] forState:UIControlStateNormal]; 110 [mySlider1 setThumbImage:[UIImage imageNamed:@"thumb.png"] forState:UIControlStateNormal]; 111 112 //UIControlEventValueChanged:值在变化 113 114 [mySlider1 addTarget:self action:@selector(sliderChange:) forControlEvents:UIControlEventValueChanged]; 115 116 [self.view addSubview:mySlider1]; 117 118 switch (arr_objindex) { 119 case 0: 120 // 121 str = @"001"; 122 break; 123 case 1: 124 str = @"002"; 125 break; 126 case 2: 127 str = @"003"; 128 break; 129 case 3: 130 str = @"004"; 131 break; 132 case 4: 133 str = @"005"; 134 break; 135 case 5: 136 str = @"006"; 137 break; 138 139 case 6: 140 str = @"007"; 141 break; 142 case 7: 143 str = @"008"; 144 break; 145 case 8: 146 str = @"009"; 147 break; 148 case 9: 149 str = @"010"; 150 break; 151 case 10: 152 str = @"011"; 153 break; 154 case 11: 155 str = @"012"; 156 break; 157 158 default: 159 break; 160 } 161 162 163 164 if (player ==nil) { 165 // 166 167 NSError *error = nil; 168 NSString *path = [[NSBundle mainBundle]pathForResource:str ofType:@"mp3"]; 169 NSURL *url = [NSURL fileURLWithPath:path]; 170 171 player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error]; 172 player.delegate = self; 173 174 } 175 176 [player prepareToPlay]; 177 [player play]; 178 179 [player setVolume:5.0]; 180 181 182 } 183 #pragma mark -----------------control audio 184 -(void)sliderChange:(id)sender{ 185 186 UISlider *slider = (UISlider *)sender; 187 188 NSLog(@"%f",slider.value); 189 [player setVolume:slider.value]; 190 191 192 } 193 194 - (void)viewDidUnload 195 { 196 [super viewDidUnload]; 197 // Release any retained subviews of the main view. 198 // e.g. self.myOutlet = nil; 199 } 200 201 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 202 { 203 // Return YES for supported orientations 204 return (interfaceOrientation == UIInterfaceOrientationPortrait); 205 } 206 207 @end
TimerViewController.h
1 // 2 // TimerViewController.h 3 // novel_example 4 // 5 // Created by chenzg on 3/23/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 #import "PlayViewController.h" 11 @interface TimerViewController : UIViewController<UITableViewDelegate,UITableViewDataSource> 12 { 13 UITableView *table; 14 NSArray *arr; 15 UILabel *timerLbl; 16 UISwitch *switch_; 17 PlayViewController *playView; 18 19 } 20 21 @property(nonatomic,retain)UISwitch *switch_; 22 -(IBAction)switchChange:(id)sender; 23 24 @end
TimerViewController.m
1 // 2 // TimerViewController.m 3 // novel_example 4 // 5 // Created by chenzg on 3/23/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import "TimerViewController.h" 10 #import "CustomCell.h" 11 @implementation TimerViewController 12 13 @synthesize switch_; 14 @synthesize player; 15 -(IBAction)switchChange:(id)sender{ 16 17 NSLog(@"switch change"); 18 UISwitch *mySwitch = (UISwitch *)sender; 19 BOOL setting = mySwitch.isOn;//open 20 [switch_ setOn:setting animated:YES]; 21 22 23 } 24 25 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 26 { 27 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 28 if (self) { 29 // Custom initialization 30 } 31 return self; 32 } 33 34 - (void)didReceiveMemoryWarning 35 { 36 // Releases the view if it doesn't have a superview. 37 [super didReceiveMemoryWarning]; 38 39 // Release any cached data, images, etc that aren't in use. 40 } 41 42 #pragma mark - View lifecycle 43 44 /* 45 // Implement loadView to create a view hierarchy programmatically, without using a nib. 46 - (void)loadView 47 { 48 } 49 */ 50 #pragma mark -------UITableViewDelegate method(行高): 51 52 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 53 54 return 45; 55 56 } 57 58 #pragma mark ---点击某行触发的方法 59 60 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 61 NSLog(@"didselect"); 62 switch (indexPath.row) { 63 case 10: 64 // 65 playView.player.currentTime = 10; 66 if (playView.player.duration==600) { 67 // 68 [playView.player stop]; 69 } 70 break; 71 72 default: 73 break; 74 } 75 76 77 78 } 79 80 #pragma mark UITableViewDataSource method: 81 82 83 84 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 85 static NSString *cellIdentifier = @"Cell"; 86 87 CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 88 if (cell == nil) { 89 cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease]; 90 91 92 [cell setTheImage:[UIImage imageNamed:@"条纹.png"]]; 93 94 95 96 if (indexPath.row ==0) { 97 // 98 99 }else{ 100 101 102 //title 103 UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(20, 0, 300, 40)]; 104 lbl.backgroundColor = [UIColor clearColor]; 105 lbl.tag = indexPath.row; 106 lbl.textColor = [UIColor blackColor]; 107 lbl.text = [arr objectAtIndex:indexPath.row];//arry indexPath.row 108 [cell addSubview:lbl]; 109 110 } 111 112 113 114 115 116 } 117 118 cell.selectionStyle = UITableViewCellSelectionStyleNone; 119 //cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 120 121 return cell; 122 } 123 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 124 125 return 7;//[arr count];//array count 126 } 127 128 129 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;{ 130 return 1; 131 132 } 133 -(void)viewWillAppear:(BOOL)animated{ 134 [super viewWillAppear:YES]; 135 self.navigationController.navigationBar.hidden = YES; 136 137 } 138 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 139 - (void)viewDidLoad 140 { 141 [super viewDidLoad]; 142 143 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 436)]; 144 imageView.image = [UIImage imageNamed:@"Default.png"]; 145 [self.view addSubview:imageView]; 146 [imageView release]; 147 148 arr = [[NSArray alloc]initWithObjects:@"",@"10分钟",@"20分钟",@"30分钟",@"40分钟",@"50分钟",@"60分钟",nil]; 149 150 151 table = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 436) style:UITableViewStylePlain]; 152 table.scrollEnabled = YES; 153 table.delegate = self; 154 table.dataSource = self; 155 table.backgroundColor = [UIColor clearColor]; 156 157 table.separatorStyle = UITableViewCellSeparatorStyleNone;// 去掉cell的线 158 table.indicatorStyle = UIScrollViewIndicatorStyleWhite; 159 160 [self.view addSubview:table]; 161 162 switch_ = [[UISwitch alloc]initWithFrame:CGRectMake(100, 10, 100, 30)]; 163 switch_.backgroundColor =[UIColor clearColor]; 164 [switch_ addTarget:self action:@selector(switchChange:) forControlEvents:UIControlEventValueChanged]; 165 166 [self.view addSubview:switch_]; 173 } 174 179 - (void)viewDidUnload 180 { 181 [super viewDidUnload]; 182 // Release any retained subviews of the main view. 183 // e.g. self.myOutlet = nil; 184 } 185 186 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 187 { 188 // Return YES for supported orientations 189 return (interfaceOrientation == UIInterfaceOrientationPortrait); 190 } 191 192 @end
AboutUsViewController.h
1 // 2 // AboutUsViewController.h 3 // novel_example 4 // 5 // Created by chenzg on 3/23/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 11 @interface AboutUsViewController : UIViewController 12 13 @end
AboutUsViewController.m
1 // 2 // AboutUsViewController.m 3 // novel_example 4 // 5 // Created by chenzg on 3/23/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import "AboutUsViewController.h" 10 11 @implementation AboutUsViewController 12 13 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 14 { 15 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 16 if (self) { 17 // Custom initialization 18 } 19 return self; 20 } 21 22 - (void)didReceiveMemoryWarning 23 { 24 // Releases the view if it doesn't have a superview. 25 [super didReceiveMemoryWarning]; 26 27 // Release any cached data, images, etc that aren't in use. 28 } 29 30 #pragma mark - View lifecycle 31 32 /* 33 // Implement loadView to create a view hierarchy programmatically, without using a nib. 34 - (void)loadView 35 { 36 } 37 */ 38 39 /* 40 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 41 - (void)viewDidLoad 42 { 43 [super viewDidLoad]; 44 } 45 */ 46 47 - (void)viewDidUnload 48 { 49 [super viewDidUnload]; 50 // Release any retained subviews of the main view. 51 // e.g. self.myOutlet = nil; 52 } 53 54 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 55 { 56 // Return YES for supported orientations 57 return (interfaceOrientation == UIInterfaceOrientationPortrait); 58 } 59 60 @end CustomCell.h 1 // 2 // CustomCell.h 3 // novel_example 4 // 5 // Created by chenzg on 4/7/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 11 @interface CustomCell : UITableViewCell 12 { 13 UIImageView *imageView; 14 15 } 16 17 -(void)setTheImage:(UIImage *)icon; 18 19 20 @end
CustomCell.m
1 // 2 // CustomCell.m 3 // novel_example 4 // 5 // Created by chenzg on 4/7/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import "CustomCell.h" 10 11 @implementation CustomCell 12 13 14 #pragma mark---------setTheImage------ 15 16 -(void)setTheImage:(UIImage *)icon{ 17 18 imageView = [[UIImageView alloc]initWithImage:icon]; 19 imageView.frame = CGRectMake(0, 0, 320, 45); 20 [self.contentView addSubview:imageView]; 21 22 23 } 24 25 #pragma mark ------去除cell的背景色 26 27 -(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ 28 29 30 if (self== [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { 31 //cell background kill 32 33 [self.contentView setBackgroundColor:[UIColor clearColor]]; 34 35 } 36 37 38 return self; 39 40 } 41 42 -(void)setSelected:(BOOL)selected animated:(BOOL)animated{ 43 44 [super setSelected:selected animated:animated]; 45 46 if (selected == YES) { 47 // 48 imageView.alpha =1;//cell被图片覆盖 49 50 }else{ 51 52 imageView.alpha =.2;//cell透明 53 } 54 55 } 56 57 - (void)didReceiveMemoryWarning 58 { 59 // Releases the view if it doesn't have a superview. 60 [super didReceiveMemoryWarning]; 61 62 // Release any cached data, images, etc that aren't in use. 63 } 64 65 #pragma mark - View lifecycle 66 67 /* 68 // Implement loadView to create a view hierarchy programmatically, without using a nib. 69 - (void)loadView 70 { 71 } 72 */ 73 74 /* 75 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 76 - (void)viewDidLoad 77 { 78 [super viewDidLoad]; 79 } 80 */ 81 82 - (void)viewDidUnload 83 { 84 [super viewDidUnload]; 85 // Release any retained subviews of the main view. 86 // e.g. self.myOutlet = nil; 87 } 88 89 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 90 { 91 // Return YES for supported orientations 92 return (interfaceOrientation == UIInterfaceOrientationPortrait); 93 } 94 95 @end