首页 > 技术文章 > UISegmentedControl小常识和图片拉伸

pocket-mood 2015-05-07 18:06 原文

UISegmentedControl

 

/*

typedef enum {

UISegmentedControlStylePlain,

UISegmentedControlStyleBordered,

UISegmentedControlStyleBar,

UISegmentedControlStyleBezeled,

} UISegmentedControlStyle;

 

*/

segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;

但是这个在ios7之后,出于扁平化风格的考虑,这些style都不在有效了

// iOS7.0以后废除了

//    self.segControl.segmentedControlStyle = UISegmentedControlStyleBezeled;

    

    // 设置默认索引

//    self.segControl.selectedSegmentIndex = 1;

    

    // tintColor默认是nil

//    self.segControl.tintColor = [UIColor redColor];

    

    // 初始化UISegmentedControl

//    NSArray *segArray = [NSArray arrayWithObjects:@"通话记录",@"短消息", nil];

//    self.segControl = [[UISegmentedControl alloc] initWithItems:segArray];

    

    // 更改指定索引的标题

//    [self.segControl setTitle:@"One" forSegmentAtIndex:0];

//    [self.segControl setTitle:@"Two" forSegmentAtIndex:1];

    

    // 设置UISegmentedControl被点击后是否恢复原样,默认为NO

//    self.segControl.momentary = YES;

    

    // 设置指定索引图片

//    [self.segControl setImage:[UIImage imageNamed:@"keyboard_0_selected"] forSegmentAtIndex:0];

//    [self.segControl setImage:[UIImage imageNamed:@"keyboard_2_selected"] forSegmentAtIndex:1];

    

    // 在指定索引插入一个选项并设置图片

//    [self.segControl insertSegmentWithImage:nil atIndex:0 animated:YES];

    

    // 在指定索引插入一个选项并设置标题

//    [self.segControl insertSegmentWithTitle:@"Three" atIndex:2 animated:YES];

    

    // 移除指定选项

//    [self.segControl removeSegmentAtIndex:0 animated:YES];

    

    // NSFontAttributeName默认是12号字体

//    NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont boldSystemFontOfSize:17],NSFontAttributeName,[UIColor redColor], NSForegroundColorAttributeName, nil];

//    // 普通状态

//    [self.segControl setTitleTextAttributes:attributes forState:UIControlStateNormal];

    

//    // NSForegroundColorAttributeName默认是黑色

//    NSDictionary *highlightedAttributes = [NSDictionary dictionaryWithObject:[UIColor yellowColor] forKey:NSForegroundColorAttributeName];

//    // 选中状态

//    [self.segControl setTitleTextAttributes:highlightedAttributes forState:UIControlStateSelected];

    

    //在导航栏中间

    //  self.navigationItem.titleView = self.segControl;

    

    //读取一个item图片

//    UIImage *segmentedControlimageItem = [self.segControl   imageForSegmentAtIndex:2];

    

    //调整图片或文本在分段控件上的偏移

//    CGSize textSize =CGSizeMake(20,0);

//    [self.segControl  setContentOffset:textSize forSegmentAtIndex:1];

    

    //获取偏移量 默认0

//    CGSize  textfloat = [self.segControl contentOffsetForSegmentAtIndex:1];

    

    //设置 item是否可以点击默认 yes

//    [self.segControl  setEnabled:NO  forSegmentAtIndex:1];

    

    // 读取item 是否可以点击

//    BOOL item4isbool = [self.segControl isEnabledForSegmentAtIndex:1];

    

    //删除一个item

//    [self.segControl  removeSegmentAtIndex:0 animated:YES];

    

    //删除所有item

    // [self.segControl removeAllSegments];

    

    // 读取item 的标题

//    NSString *titleString = [self.segControl  titleForSegmentAtIndex:1];

    

    // 获取item 的索引号

//    int itemNumebr =self.segControl.selectedSegmentIndex;

    // 设置控件圆角(有些可能设置了没效果)

//    self.segControl.layer.cornerRadius = 0;

 

 

在iOS5, UIImage添加了可以拉伸图片的函数,即:

[UIImage resizableImageWithCapInsets:]

 

    // 原图

    UIImage *image = [UIImage imageNamed:@"keyboard_3_selected"];

    // 拉伸后的

 

    UIImage *newImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(10, 10, 20, 10)];

推荐阅读