#import "AppDelegate.h"
#import "ViewController.h"
#import "secondViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// //滑竿
// ViewController *viewController =[[ViewController alloc]init];
// self.window.rootViewController = viewController;
//分段控制器
secondViewController *secondVC = [[secondViewController alloc]init];
self.window.rootViewController = secondVC;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//滑竿的使用
//初始化
UISlider *mySlider =[[UISlider alloc]initWithFrame:CGRectMake(30, 100, 300, 50)];
// [self.view addSubview:mySlider];
//設置滑竿的最小值
mySlider.minimumValue = 0;
//設置滑竿的最大值
mySlider.maximumValue = 100;
//劃過範圍的顏色
mySlider.minimumTrackTintColor = [UIColor redColor];
//未划過去範圍的顏色
mySlider.maximumTrackTintColor = [UIColor blackColor];
//設置滑塊的顏色
mySlider.thumbTintColor = [UIColor grayColor];
//設置左邊指示圖標
mySlider.minimumValueImage = [UIImage imageNamed:@"han30.png"];
//設置右邊的指示圖標
mySlider.maximumValueImage = [UIImage imageNamed:@"han30.png"];
//設置滑塊的起始位置
mySlider.value = 50;
//爲滑竿添加觸發事件
[mySlider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
//練習:
//滑動滑竿改變視圖的背景顏色。通過三個滑竿,分別控制R/G/B三原色
for (int i = 0 ; i<3; i++) {
UISlider *colorSlider = [[UISlider alloc]initWithFrame:CGRectMake(50, 300+i * 50, 300, 50)];
//由於顏色的範圍爲0~1.0,所以我們將滑竿的取值範圍設置爲0~1.0;
colorSlider.minimumValue = 0.0;
colorSlider.maximumValue = 1.0;
//由於有三個滑竿公用同一個回調方法,所以要在回調方法中區分目前所操作的是哪個滑竿,所以需要添加tag值來區分。
colorSlider.tag = 1000+i;
//添加回調事件
[colorSlider addTarget:self action:@selector(changColor:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:colorSlider];
//設置滑塊顏色爲隨機色(滑塊顏色太醜了)
if (i ==0) {
colorSlider.thumbTintColor =[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];
}else if(i ==1){
colorSlider.thumbTintColor =[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];
}else if(i ==2){
colorSlider.thumbTintColor =[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];
}
}
//添加圖片,讓滑竿控制圖片
UIImageView *myImage =[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 150 , 150)];
UIImage *image = [UIImage imageNamed:@"han.png"];
// [myImage addSubview:image]; 錯的,下面是對的
// [myImage setImage:image]; 這個和下面的都可以
myImage.image = image;
[self.view addSubview:myImage];
myImage.tag = 1111;
// myImage.center = self.view.center;
UISlider *mySlider1 = [[UISlider alloc]initWithFrame:CGRectMake(50, 20, 300, 50)];
[mySlider1 addTarget:self action:@selector(changAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:mySlider1];
mySlider1.minimumValue = 75;
mySlider1.maximumValue = 100;
}
//實現滑竿的回調方法
-(void)sliderAction:(UISlider *)sender{
//打印滑竿當前的位子所對應的值
NSLog(@"value---%f",sender.value);
}
-(void)changColor:(UISlider *)sender{
//通過tag值得到三個滑竿
UISlider *redSlider =(UISlider *) [self.view viewWithTag:1000];
UISlider *greenSlider = (UISlider *)[self.view viewWithTag:1001];
UISlider *blueSlider = (UISlider *)[self.view viewWithTag:1002];
//得到顏色
UIColor *resultColor = [UIColor colorWithRed:redSlider.value green:greenSlider.value blue:blueSlider.value alpha:1.0];
//設置視圖的背景顏色
self.view.backgroundColor = resultColor;
}
//隨着滑塊滑動--改變圖片大小
-(void)changAction:(UISlider *)sender{
UIImageView *newImageView = (UIImageView *)[self.view viewWithTag:1111];
newImageView.frame = CGRectMake(100, 100, 2*sender.value, 2*sender.value);
// newImageView.bounds = CGRectMake(0, 0, 2*sender.value, 2*sender.value); 這個是以圖片中心爲原點放大,上面的是以定義的100,100爲原點放大
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
#import "secondViewController.h"
@interface secondViewController ()
@end
@implementation secondViewController
- (void)viewDidLoad {
[super viewDidLoad];
//分段控制器
//初始化,使用自己的初始化方式
//itmes:該參數所需要的類型爲數組,根據數組中的按鈕標題來創建響應個數的按鈕。所以數組中的元素類型爲NSString
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]initWithItems:@[@"紅",@"綠",@"藍"]];
//設置大小--frame
segmentedControl.frame = CGRectMake(80, 80, 210, 50);
// [self.view addSubview:segmentedControl];
//設置默認選中某個按鈕 從左到右 0,1...
[segmentedControl setSelectedSegmentIndex:1];
//設置背景顏色
[segmentedControl setTintColor:[UIColor cyanColor]];
//爲每個分段設置圖片
//圖片沒有被顯示出來,因爲圖片被系統渲染了。
//在圖片代碼後面加代碼imageWithRenderingMode
//裏面有三種,意義爲:自動 原始 一直受系統渲染
[segmentedControl setImage:[[UIImage imageNamed:@"han.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]forSegmentAtIndex:0];
[segmentedControl addTarget:self action:@selector(changeBGColor:) forControlEvents:UIControlEventValueChanged];
//--------------------------------------------------------------------
//三個界面通過分段控制器切換
for (int i = 0 ; i<3; i++) {
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];
view.center = self.view.center;
view.tag = 1000+i;
view.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];
if (i ==0) {
view.hidden = NO;
}else{
view.hidden = YES;
}
[self.view addSubview:view];
}
//創建分段控制器,控制界面的切換
UISegmentedControl *changeViewSegment = [[UISegmentedControl alloc]initWithItems:@[@"1",@"2",@"3"]];
changeViewSegment.frame = CGRectMake(100, 100, 200, 50);
[changeViewSegment addTarget:self action:@selector(changeView:) forControlEvents:UIControlEventValueChanged];
[changeViewSegment setSelectedSegmentIndex:0];
[self.view addSubview:changeViewSegment];
//---------------------------------------------------------------------
//UIStepper--加減控件
UIStepper *stepper = [[UIStepper alloc]initWithFrame:CGRectMake(20 , 20, 100, 100)];
[self.view addSubview:stepper];
//最小值
stepper.minimumValue = 0;
//最大值
stepper.maximumValue =10;
//每次增量
stepper.stepValue = 1;
//設置是否循環
stepper.continuous = YES;
//設置是否連續循環
stepper.wraps = YES;
//設置按鈕的顏色
stepper.tintColor = [UIColor cyanColor];
//設置背景顏色
[stepper setBackgroundColor:[UIColor orangeColor]];
//設置背景圖片
// [stepper setBackgroundImage:[UIImage imageNamed:@"han.png"]forState:UIControlStateNormal];
//加回調函數方法
[stepper addTarget:self action:@selector(stepperAction:) forControlEvents:UIControlEventValueChanged];
//-------------------------------------------------------------------
//加減控件的應用,繼承上面的概念數據
//將數字顯示在label上
UILabel *myLabel1 = [[UILabel alloc]initWithFrame:CGRectMake(130, 21, 30, 30)];
myLabel1.backgroundColor = [UIColor blueColor];
[self.view addSubview:myLabel1];
UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(132,23, 26, 26)];
myLabel.text = @"0";
[self.view addSubview:myLabel];
myLabel.backgroundColor=[UIColor whiteColor];
myLabel.tag = 1234;
}
//-------------------------------------------------------------------
//分段控制器的回調方法
-(void)changeBGColor:(UISegmentedControl *)sender{
//得到當前正在點擊的分段
int index = (int)sender.selectedSegmentIndex;
UIColor *resultClolr = [UIColor whiteColor];
switch (index) {
case 0:
// [self.view setBackgroundColor:[UIColor redColor]];
resultClolr = [UIColor redColor];
break;
case 1:
// [self.view setBackgroundColor:[UIColor greenColor]];
resultClolr = [UIColor greenColor];
break;
case 2:
// [self.view setBackgroundColor:[UIColor blueColor]];
resultClolr = [UIColor blueColor];
break;
default:
break;
}
self.view.backgroundColor = resultClolr;
}
//--------------------------------------------------------------------
-(void)changeView:(UISegmentedControl *)sender{
//得到三個界面
UIView *oneView = [self.view viewWithTag:1000];
UIView *twoView = [self.view viewWithTag:1001];
UIView *threeView = [self.view viewWithTag:1002];
switch (sender.selectedSegmentIndex) {
case 0:
{
oneView.hidden = NO;
twoView.hidden = YES;
threeView.hidden = YES;
}
break;
case 1:
{
oneView.hidden = YES;
twoView.hidden = NO;
threeView.hidden = YES;
}
break;
case 2:
{
oneView.hidden = YES;
twoView.hidden = YES;
threeView.hidden = NO;
}
break;
default:
break;
}
}
//---------------------------------------------------------------------
//加減控件的回調函數
-(void)stepperAction:(UIStepper *)sender{
UILabel *label = (UILabel *)[self.view viewWithTag:1234];
[label setText:[NSString stringWithFormat:@"%.f",sender.value]];
NSLog(@"%f",sender.value);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end