IOS的segmentedControl(分段器控制項)的一些常用屬性,segmentedcontrol控制項

來源:互聯網
上載者:User

IOS的segmentedControl(分段器控制項)的一些常用屬性,segmentedcontrol控制項

#pragma mark - 建立不同的分段器

    //初始化方法:傳入的數組可以是字串也可以是UIImage對象的圖片數組

    UISegmentedControl *mysegmented = [[UISegmentedControl alloc] initWithItems:@[@"左邊",@"我是中間",@"右邊"]];

    mysegmented.frame = CGRectMake(50, 200, kScreenWidth-100, 40);

    [self.view addSubview: mysegmented];

    

    //第二種建立方式

    UISegmentedControl *mysegmented2 = [[UISegmentedControl alloc] initWithFrame:CGRectMake(100, 200, 300, 40)];

    //animated為NO即表示不是即時修改,等點擊事件結束後再響應

    [mysegmented2 insertSegmentWithTitle:@"聊天" atIndex:1 animated:YES];

    [mysegmented2 insertSegmentWithTitle:@"通話" atIndex:0 animated:YES];

//    [self.view addSubview:mysegmented2];

    

    //建立一個圖片數組,用圖片來作為分段器的元素

    NSArray *imageArray = @[[UIImage imageNamed: @"prev"],[UIImage imageNamed: @"next"]];

    UISegmentedControl *yoursegmented = [[UISegmentedControl alloc] initWithItems:imageArray];

    yoursegmented.frame = CGRectMake(100, 450, kScreenWidth-200, 65);

    [self.view addSubview: yoursegmented];

 

    

    

#pragma mark - 重設標籤標題和擷取標籤標題

    [mysegmented setTitle: @"我是修改過的標籤" forSegmentAtIndex:1];

    NSString *titleString = [mysegmented titleForSegmentAtIndex: 1];

    NSLog(@"%@", titleString);

    //也可以重新設定圖片標籤和擷取標籤圖片

    //- (void)setImage:(UIImage *)image forSegmentAtIndex:(NSUInteger)segment;

    //- (UIImage *)imageForSegmentAtIndex:(NSUInteger)segment;

    

 

 /* 以下是在ios開發中,對segmentedControl控制項的一些屬性的用法解析,只能用手機查看不能自己啟動並執行也沒有關係,以下內容是帶圖片的。*/

 

#pragma mark - 設定標籤的顏色(預設為blue)以及圖片

    //背景顏色

    mysegmented.backgroundColor = [UIColor greenColor];

    //文字的顏色,邊框的顏色,以及選中的標籤的顏色

    mysegmented.tintColor = [UIColor redColor];

    //設定標籤的背景圖片,還可以擷取分段器的背景圖片

    //[mysegmented setBackgroundImage:[UIImage imageNamed:@"prev"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

    //(設定的是整個分段器的背景圖片),UIBarMetrics是一個枚舉,default預設背景圖片充滿整個分段器

    

 

 

 

#pragma mark - 設定分段器的分割線的圖片(同樣的,也可以擷取圖片)

    // - (void)setDividerImage:(UIImage *)dividerImage forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState barMetrics:(UIBarMetrics)barMetrics

 

 

#pragma mark - 選中狀態(若不指定下標,那麼根據建立的items順序,下標從0開始增長)

    mysegmented.selectedSegmentIndex = 0;

    yoursegmented.selectedSegmentIndex = 1;

 

 

 

 

#pragma mark - numberOfSegments,擷取標籤的個數,唯讀

    NSInteger i = mysegmented.numberOfSegments;

    NSLog(@"一共有%ld個標籤",i);

 

 

    

#pragma mark - 設定標籤寬度是否隨內容自適應(設定為NO則表示所有標籤寬度一致為最大的寬度)

    mysegmented.apportionsSegmentWidthsByContent = NO;

    

#pragma mark - 插入文字標籤或圖片在index位置

    [mysegmented insertSegmentWithTitle: @"我是插入的標籤" atIndex:2 animated:YES];

    [yoursegmented insertSegmentWithImage: [UIImage imageNamed: @"next"] atIndex:0 animated:YES];    

 

 

#pragma mark - 根據索引刪除標籤或刪除所有標籤

    [mysegmented removeSegmentAtIndex: 1 animated: YES];

    //[mysegmented removeSegmentAtIndex: 1 animated: NO];

    //刪除所有標籤 [mysegmented removeAllSegments];

 

 

 

 

#pragma mark - 根據索引設定相應標籤寬度和擷取標籤寬度

    //若setWidth設定為0.0,則預設為自適應寬度

    [yoursegmented setWidth: 50.0 forSegmentAtIndex:0];

    //擷取標籤寬度

    //- (CGFloat)widthForSegmentAtIndex:(NSUInteger)segment;

 

 

 

 

#pragma mark - 設定標籤內容的位移量和擷取位移量

    [mysegmented setContentOffset: CGSizeMake(20.0, 0) forSegmentAtIndex:0];

    //擷取位移量

    //- (CGSize)contentOffsetForSegmentAtIndex:(NSUInteger)segment;

    

 

 

#pragma mark - 根據索引設定標籤是否有效(預設有效)和擷取是否有效

    //- (void)setEnabled:(BOOL)enabled forSegmentAtIndex:(NSUInteger)segment;

    //- (BOOL)isEnabledForSegmentAtIndex:(NSUInteger)segment;

    

 

#pragma mark - 點擊事件(可以帶參數)

    [mysegmented addTarget:self action:@selector(segmentedAction) forControlEvents:UIControlEventValueChanged];

    //這裡需建立另外的視圖控制器進行示範

}

 

//點擊事件

- (void) segmentedAction{

    FirstViewController *firstVC = [[FirstViewController alloc] init];

    [self.view addSubview:firstVC.view];

    //從父視圖上移除 [_firstVC.view removeFromSuperview];

}

 

 

 

/*

  以上是我自己總結的分段器控制項的一些基本屬性,剪掉圖片,以上代碼可以直接複製粘貼到自己的工程中運行,可自行查看和修改結果。對以上有異議或者想和我一起討論的,可以加我的qq 78928861,大家一起討論,一起學習。

*/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.