İOS Obj-C

iOS Segmented Control

Segmented Control, şekilde gördüğünüz butonlar gibi görünen yapıya denir. Segment ekleyebilir yada çıkartabilirsiniz.

Kullanıcının hangi segment’e tıkladığını yakalayabilir ve istediğiniz aksiyonu yaptırabilirsiniz.

Ekran Resmi 2014-05-08 11.24.11

 

Segmented Controller

İlk olarak view’a bir tane segmented control, bir tane de label sürüklüyorum. Label ı Outlet olarak, SegmentedControl’ün ise hem Action – valueChanged  hemde Outlet olarak tanımlıyorum.

valueChanged metodunda kullanıcı segmentleri değiştirdiğinde onu yakalayabileceğim. Outlet tanılamamın sebebi ise valueChanged içinde segmentimin selectedIndex (o anda tıklanmış olan index) i kontol etmek ve bunun için bir kontrol yapmak.

segment_kod5

 

Yapmak istediğimiz şey çok basit. Kullanıcı segmentleri değiştirdikçe biz de label’a atadığımız değeri ve label’ın ekrandaki pozisyonunu değiştireceğiz.

.h dosyamız

//
//  ViewController.h
//  SegmentedControl
//
//  Created by Muhammed on 8.05.2014.
//  Copyright (c) 2014 Muhammed. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *label;
- (IBAction)valueChanged:(id)sender;
@property (weak, nonatomic) IBOutlet UISegmentedControl *segment;

@end

 

.m dosyamız

//
//  ViewController.m
//  SegmentedControl
//
//  Created by Muhammed on 8.05.2014.
//  Copyright (c) 2014 Muhammed. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)valueChanged:(id)sender {
    if (_segment.selectedSegmentIndex==0) {
        _label.text=@"Segment 1 Seçildi";
        _label.frame=CGRectMake(25, 160, _label.frame.size.width, _label.frame.size.height);
    }
    else if (_segment.selectedSegmentIndex==1) {
        _label.text=@"Segment 2 Seçildi";
        _label.frame=CGRectMake(25, 200, _label.frame.size.width, _label.frame.size.height);

    }
    else if (_segment.selectedSegmentIndex==2) {
        _label.text=@"Segment 3 Seçildi";
        _label.frame=CGRectMake(25, 240, _label.frame.size.width, _label.frame.size.height);

    }
    
}
@end

Label ın başlangıçtaki x koordinatı 25, y koordinatı ise 160dı. Bu ekran açıldığında ve ilk segmentte görünecek değer aynı zamanda. 2. segmentte ben labelın diğer değerlerini (x, genişlik, yükseklik) sabit tutarak y değerini 200, 3. segmentte de 240 yapıyorum.

İşte ekranlarımızın birleştirilmiş görüntüsü:

segments

 

Uygulama dosyaları için : https://github.com/ozdemirmuhammed/SegmentedControl

Yorum Ekle

iOS Segmented Control | kod5 için bir yanıt yazın X