用UIPickerView制作一個老虎機的效果
ViewController.h:
#import <UIKit/UIKit.h>
@interface DXWViewController :UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>
@property (retain,nonatomic)
IBOutlet UIPickerView *picker;
- (IBAction)click:(id)sender;
- (IBAction)OK:(id)sender;
@property(nonatomic,retain)NSArray *images;
@property(nonatomic,retain)NSArray *column1;
@property(nonatomic,retain)NSArray *column2;
@property(nonatomic,retain)NSArray *column3;
@property(nonatomic,retain)NSArray *column4;
@property(nonatomic,retain)NSArray *column5;
@end
ViewController.m:
#import"DXWViewController.h"
@interfaceDXWViewController ()
@implementation DXWViewController
- (void)viewDidLoad
{
[superviewDidLoad];
UIImage *image1 = [UIImageimageNamed:@"apple.png"];
UIImage *image2 = [UIImage imageNamed:@"bar.png"];
UIImage *image3 = [UIImage imageNamed:@"cherry.png"];
UIImage *image4 = [UIImage imageNamed:@"crown.png"];
UIImage *image5 = [UIImage imageNamed:@"lemon.png"];
UIImage *image6 = [UIImage imageNamed:@"seven.png"];
self.images =@[image1,image2,image3,image4,image5,image6];
//建立30個ImageView
for (int i=0; i<5; i++) {
UIImageView *imageView1 = [[UIImageViewalloc]
initWithImage:image1];
UIImageView *imageView2 = [[UIImageViewalloc]
initWithImage:image2];
UIImageView *imageView3 = [[UIImageViewalloc]
initWithImage:image3];
UIImageView *imageView4 = [[UIImageViewalloc]
initWithImage:image4];
UIImageView *imageView5 = [[UIImageViewalloc]
initWithImage:image5];
UIImageView *imageView6 = [[UIImageViewalloc]
initWithImage:image6];
NSArray *arr = @[imageView1,imageView2,imageView3,imageView4,imageView5,imageView6];
NSString *str = [NSString
stringWithFormat:@"column%d",i+1];
//OC特有方法,對一個可能存在可能不存在的變量指派,本來是一個變量,可以轉化成字元串,這樣就可以改變字元串了
[selfsetValue:arr
forKey:str]; //KVC
[imageView1
release];
[imageView2
[imageView3
[imageView4
[imageView5
[imageView6
}
srandom(time(NULL));
//預設選擇在第5000行
[self.pickerselectRow:5000inComponent:i
animated:NO];
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
return5;
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
return [self.imagescount]*10000;
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component
reusingView:(UIView *)view
//這種寫法非常消耗記憶體
// UIImageView *imageView = [[UIImage alloc] initWithImage:[self.images objectAtIndex:row]];
// return imageView;
NSString * str = [NSString stringWithFormat:@"column%d",component+1];
NSArray *arr = [selfvalueForKey:str];
return [arrobjectAtIndex:row%6];
- (void)dealloc {
[_pickerrelease];
[_imagesrelease];
[_column1release];
[_column2release];
[_column3release];
[_column4release];
[_column5release];
[superdealloc];
//退出
- (IBAction)click:(id)sender {
// NSLog(@"%@",srandom(time(nil)));
exit(0);
//确定
- (IBAction)OK:(id)sender {
int a[5];
bool f=false;
int row = random() % [self.column1count];
int n = random() % 35;
int j = row *n;
[self.pickerselectRow:j
inComponent:i animated:YES];
a[i]=j%6;
int sum=0;
for (int i=0; i<5; i++)
{
sum =
1;
if (f==false)
{
for (int j=i+1; j<5; j++)
{
if (a[i] == a[j])
{
sum++;
}
if (sum>=3)
f=true;
break;
}
}
else
{
if (f) {
UIAlertView *a = [[UIAlertView
alloc] initWithTitle:@"我中了"message:@"中了500萬"
delegate:selfcancelButtonTitle:@"取消"otherButtonTitles:nil];
[a
show];
效果圖:

音頻檔案的添加:
1.首先導入framework架構,AudioToolbox.framework
2.導入頭檔案
#import <AudioToolbox/AudioToolbox.h>
3.完善接口函數
-(void)playMusic:(NSString*)s
//通過NSBundle來獲得音頻檔案的url位址
NSURL *url = [[NSBundle
mainBundle] URLForResource:s
withExtension:@"wav"];
SystemSoundID winSound;//整形類型的id
//用音頻服務,為音頻檔案綁定soundID
AudioServicesCreateSystemSoundID((CFURLRef)url, &winSound);
//通過綁定的soundId來播放音樂
AudioServicesPlayAlertSound(winSound);
4.調用
[self playMusic:@"win"];