I've set the height of my UISegmentedControl in Storyboard with a constant. When I run the app - it looks fine and how I want it to look. However, as soon as I select a segment (anyone) the UiSegmentedControl changes its height to default one. If I select the current index again a few times, it returns to the height I set it to.
Can someone tell me whats going on here?
Thank you!
Edit Some code:
This method is called from viewDidLoad
-(void)setupSegmented
{
self.segmentedControl.tintColor = [UIColor clearColor];
if ([UIImage instancesRespondToSelector:@selector(imageWithRenderingMode:)]) {
/* For non Selected Segments */
self.allInactive = [[UIImage imageNamed:@"Segment All"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.auctionInactive = [[UIImage imageNamed:@"Segment Auction"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.buyNowInactive = [[UIImage imageNamed:@"Segment Buy Now"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.classifiedInactive = [[UIImage imageNamed:@"Segment Classified"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
/*For selected Segments */
self.allActive = [[UIImage imageNamed:@"Segment All Active"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.auctionActive = [[UIImage imageNamed:@"Segment Auction Active"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.buyNowActive = [[UIImage imageNamed:@"Segment Buy Now Active"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.classifiedActive = [[UIImage imageNamed:@"Segment Classified Active"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
[self.segmentedControl setImage:self.allInactive forSegmentAtIndex:0];
[self.segmentedControl setImage:self.auctionInactive forSegmentAtIndex:1];
[self.segmentedControl setImage:self.buyNowInactive forSegmentAtIndex:2];
[self.segmentedControl setImage:self.classifiedInactive forSegmentAtIndex:3];
}
Thus method is called when I tap a segment:
- (IBAction)segmentedControlSelected:(UISegmentedControl *)sender {
switch (sender.selectedSegmentIndex){
case 0:
{
self.tradeType = @"UNSPECIFIED";
[self.segmentedControl setImage:self.allActive forSegmentAtIndex:sender.selectedSegmentIndex];
[self.segmentedControl setImage:self.auctionInactive forSegmentAtIndex:1];
[self.segmentedControl setImage:self.buyNowInactive forSegmentAtIndex:2];
[self.segmentedControl setImage:self.classifiedInactive forSegmentAtIndex:3];
break;
}
case 1:
{
self.tradeType = @"ENGLISH_AUCTION";
[self.segmentedControl setImage:self.auctionActive forSegmentAtIndex:sender.selectedSegmentIndex];
[self.segmentedControl setImage:self.allInactive forSegmentAtIndex:0];
[self.segmentedControl setImage:self.buyNowInactive forSegmentAtIndex:2];
[self.segmentedControl setImage:self.classifiedInactive forSegmentAtIndex:3];
break;
}
case 2:
{
self.tradeType = @"FIXED_PRICE";
[self.segmentedControl setImage:self.buyNowActive forSegmentAtIndex:sender.selectedSegmentIndex];
[self.segmentedControl setImage:self.allInactive forSegmentAtIndex:0];
[self.segmentedControl setImage:self.auctionInactive forSegmentAtIndex:1];
[self.segmentedControl setImage:self.classifiedInactive forSegmentAtIndex:3];
break;
}
case 3:
{
self.tradeType = @"CLASSIFIED_CONTACT";
[self.segmentedControl setImage:self.classifiedActive forSegmentAtIndex:sender.selectedSegmentIndex];
[self.segmentedControl setImage:self.allInactive forSegmentAtIndex:0];
[self.segmentedControl setImage:self.auctionInactive forSegmentAtIndex:1];
[self.segmentedControl setImage:self.buyNowInactive forSegmentAtIndex:2];
break;
}
}
}