UISlider

使用UISlider實現指定範圍選擇

創建一個滑動條並且把它放在試圖控制器的視圖中。

@interface SliderView:UIViewController

@property(non atomic,strong)UISlider *mySlider;

@end

@synthesize mySlider;

-(void)viewDidLoad{

    [super viewDidLoad];

    self.view.backgroundColor = [UIColor whiteColor];

    self.mySlider = [ [UISlider alloc] initWithFrame:CGRectMake(0.0f,0.0f,200.0f,23.0f)];

    self.mySlider.center = self.view.center;

    self.mySlider.minimumValue = 0.0f;//選擇範圍的最小值

    self.mySlider.maximumValue= 100.0f;//選擇範圍的最大值

    self.mySlider.value = self.mySlider.maximumValue / 2.0;//當前值

    self.mySlider.continuous = NO;//默認YES,若爲YESthumb滑動時會連續調用slider d target

    [self.mySlider addTarget:self action:@selecter(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];

    [self.view addSubView:self.mySlider];

}

slider上的小滑塊叫做thumb

target

-(void)sliderValueChanged:(UISlider *)paramSender{

    if([paramSender isEqual:self.mySlider]){

        NSLog(@"%@",paramSender.value);

    }

}

slider  thumb 圖片選中設置

setThumbImage:forState:方法

UIControlStateNormal  //正常狀態下的thumb ,即沒有點擊的。

UIControlStateHighlighted //選中狀態的thumb,即用戶點擊thumb時顯示的圖片

[self.mySlider setThumbImage:[UIImage imaged:@"ThumbNormal.png"] forState:UIControlStateNormal];

[self.mySlider setThumbImage:[UIImage imaged:@"ThumbHighlighted.png"] forState:UIControlStateHighlighted];


UISegmentedControl 做簡單選項分組

@interface SegmentedControl UIViewController

@property(non atomic,strong)UISegmentedControl *mySegmentedControl;

@end;

@synthesize mySegmentedControl;

-(void)viewDidLoad{

    [super viewDidLoad];

    self.view.backgrounderColor = [UIColor whiteColor];

    NSArray *segments = [[NSArray alloc] initWithObjects:@"iPhone",@"iPad",nil];

    self.mySegmentedControl = [[UISegmentedControl alloc]initWithItems:segments];

    self.mySegmentedControl.center = self.view.center;

    [self.view addSubview:self.mySegmentedControl];

}

通過一組string來初始化控件中要顯示的不同選項,還可以通過initWithObjects:initializer 方法來初始化控件,參數可以爲string還可以爲圖片。

怎麼知道選中哪一個了呢?答案很簡單,添加一個target

-(void)segmentChanged:(UISegmentedControl *)paramSender{

    if([paramSender isEqual:self.mySegmentedControl]){

        NSInteger selectedSegmentIndex = [paramSender selectedSegmentIndex];

        NSString *selectedSegmentText = [paramSender titleForSegmentAtIndex:selectedSegmentIndex];

        NSLog(@"Segment %ld with %@ text is selected",(long)selectedSegmentIndex,selectedSegmentText);

    }

}

在viewDidLoad 裏面add後面加上這句:

    [self.mySegmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];

運行程序你會得到以下結果(從左到右點擊)

Segment 0 with One text is selected

Segment 1 with Two text is selected

Segment 2 with Three text is selected

Segment 3 with Four text is selected

selectedSegmentIndex  方法找到當前選項中的索引

titleForSegmentAtIndex 方法得到對應文本

你可能注意到了,一旦用戶選中了一個選項,那個選項會一直保持着選中狀態,那麼怎麼才能選中之後該選項馬上變回原始狀態呢,有辦法請看:

self.mySegmentedControl.momentary = YES;

想在控件上面加載圖片可以這樣:

-(void)viewDidLoad{

[super viewDidLoad];

self.view.backgroundColor = [UIColor whiteColor];

NSArray *segments = [ [NSArray alloc]initWithObjects:@"One",@"Two",[UIImage imageNamed:@"Three.png"],@"Four",nil];

self.mySegmentedControl = [ [UISegmentedControl alloc]initWithItems:segments];

CGRectsegmentedFrame = self.mySegmentedControl.frame;

segmentedFrame.size.height = 64.0f;

segmentedFrame.size.width = 300.0f;

self.mySegmentedControl.frame = segmentedFrame;

self.mySegmentedControl.center = self.view.center;

[self.view addSubview:self.mySegmentedControl];

}

分段控件的空間風格:

typedef enum{

    UISegmentedControlStylePlain,

    UISegmentedControlStyleBordered,

    UISegmentedControlStyleBar,

    UISegmentedControlStyleBezeled ,//接近矩形

}UISegmentedControlStyle;

發佈了190 篇原創文章 · 獲贊 0 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章