UISegmentedControl詳解

這個空間用的不是很多,但是用到你就需要研究一下.

NSArray * array = @[@"1",@"2",@"3",@"4",@"5"];
    UISegmentedControl * segment = [[UISegmentedControl alloc] initWithItems:array];

    segment.frame = CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, 60);

    //屬性
    /*
     typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
     UISegmentedControlStylePlain,        
     UISegmentedControlStyleBordered, 
     UISegmentedControlStyleBar,  
     UISegmentedControlStyleBezeled,        
     } NS_DEPRECATED_IOS(2_0, 7_0, "The segmentedControlStyle property no longer has any effect") __TVOS_PROHIBITED;
    */
    segment.segmentedControlStyle = UISegmentedControlStyleBar;//已經被丟棄用了

    /*
     設置是否保持選中狀態:
     注意:如果設置爲YES,點擊結束後,將不保持選中狀態,默認爲NO
     */
    segment.momentary = NO;
    NSLog(@"numberofsegment%ld",segment.numberOfSegments);//只讀屬性; 獲取當前的個數

//    設置標籤寬度是否隨內容自適應:
//    注意:如果設置爲NO,則除去自定義寬度的標籤以外的所有標籤寬度一致,爲最大寬度。
    segment.apportionsSegmentWidthsByContent = NO;

//    插入文字標籤在index位置
    [segment insertSegmentWithTitle:@"插入的" atIndex:1 animated:YES];

    UIImage * image = [UIImage imageNamed:@"a"];
    image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    //此處要關閉渲染,控件會自動渲染我們的圖片
    [segment insertSegmentWithImage:image atIndex:1 animated:YES];
//    [segment removeSegmentAtIndex:1 animated:YES];//刪除指定
//    [segment removeAllSegments];//刪除所有

    [segment setTitle:@"重設" forSegmentAtIndex:1]; //重設標題
    UIImage * image1 = [UIImage imageNamed:@"b"];
    image1 = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [segment setImage:image1 forSegmentAtIndex:1];//重設圖片
    NSLog(@"%@",[segment titleForSegmentAtIndex:1]);//獲取標籤title
    NSLog(@"%@",[segment imageForSegmentAtIndex:1]);

//    根據索引設置相應標籤寬度
    [segment setWidth:50 forSegmentAtIndex:1];
    NSLog(@"%f",[segment widthForSegmentAtIndex:1]);//根據索引獲取標籤寬度

    //設置標籤內容的偏移量 注意:這個偏移量指的是標籤的文字或者圖片

    [segment setContentOffset:CGSizeMake(100, 100) forSegmentAtIndex:1];
    NSLog(@"%f",[segment contentOffsetForSegmentAtIndex:1].width);//獲取偏移量

    [segment setEnabled:NO forSegmentAtIndex:1];//根據所以設置標籤是否有效(默認有效)
    NSLog(@"%d",[segment isEnabledForSegmentAtIndex:1]);//根據索引獲取當前標籤是否有效
    NSLog(@"%ld",segment.selectedSegmentIndex);//設置和獲取當前選中的標籤索引

    segment.tintColor = [UIColor redColor];//設置標籤風格顏色

    /*
     UIBarMetricsDefault,  //充滿
     UIBarMetricsCompact,
     UIBarMetricsDefaultPrompt = 101, // 只有在提示屬性條適用,tabbar,
     UIBarMetricsCompactPrompt,

     UIBarMetricsLandscapePhone NS_ENUM_DEPRECATED_IOS(5_0, 8_0, "Use UIBarMetricsCompact instead") = UIBarMetricsCompact,
     UIBarMetricsLandscapePhonePrompt
     */
    [segment setBackgroundImage:[UIImage imageNamed:@"1"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

//    設置標籤之間分割線的圖案
//    [segment setDividerImage:[UIImage imageNamed:@"2"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    /*
     獲取標籤之間分割線的圖案
     - (UIImage *)dividerImageForLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState barMetrics:(UIBarMetrics)barMetrics
     */


//    [segment setTitleTextAttributes:@{NSShadowAttributeName:@2} forState:UIControlStateNormal];//通過Attribute字符串屬性字典設置標籤標題

    [segment setContentPositionAdjustment:UIOffsetMake(10, 10) forSegmentType:UISegmentedControlSegmentAny barMetrics:UIBarMetricsDefault];//自行設置標籤內容的偏移量
    /*
     UISegmentedControlSegmentAny = 0,//所有標籤都受影響
     UISegmentedControlSegmentLeft = 1,  //只有左邊部分受到影響
     UISegmentedControlSegmentCenter = 2, // 只有中間部分受到影響
     UISegmentedControlSegmentRight = 3,  // 只有右邊部分受到影響
     UISegmentedControlSegmentAlone = 4,  // 在只有一個標籤的時候生效
     獲取自定義偏移量

     - (UIOffset)contentPositionAdjustmentForSegmentType:(UISegmentedControlSegment)leftCenterRightOrAlone barMetrics:(UIBarMetrics)barMetrics
     */

    [segment addTarget:self action:@selector(segmentclick:) forControlEvents:UIControlEventValueChanged];//必須UIControlEventValueChanged

    [self.view addSubview:segment];
發佈了29 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章