[英]iOS - Change text font for each segment in UISegmentController
我有一個名為mySegmentedControl的UISegmentedControl
@property (nonatomic) IBOutlet UISegmentedControl *mySegmentedControl;
有3個段,我會更改每個段的文本字體..可能嗎?
是的你可以-----試試這個
for(uint i=0;i<[mySegmentedControl subviews].count;i++)
{
for(UIView *view in [[[mySegmentedControl subviews] objectAtIndex:i] subviews])
{
if([view isKindOfClass:[UILabel class]])
{
if(i==0) // set First segment font
[(UILabel*)view setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:27]];
if(i==1) // set Second segment font
[(UILabel*)view setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:17]];
if(i==2) // set Third segment font
[(UILabel*)view setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:7]];
}
}
}
我不認為這是可能的。 您唯一的選擇是使用自定義開源實現,或使用每個段的文本設置自定義圖像。
您可以使用任何圖像而不是文本。 這將為您提供靈活的外觀定制。
NSArray *segemtImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"1st.png"],[UIImage imageNamed:@"2nd.png"],[UIImage imageNamed:@"3rd.png"], nil];
UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:segemtImages];
我修改@Anand Natan的代碼:在storyboard中設置第一個標簽“1111111111111”是改變它的默認寬度。 因為更改標簽不會更改segmentcontroll大小。
for(uint i=0;i<[_menuBarTop subviews].count;i++){
for(uint j=0;j<[[[[_menuBarTop subviews] objectAtIndex:i] subviews]count];j++){
UIView* view = [[[_menuBarTop subviews] objectAtIndex:i] subviews][j];
if([view isKindOfClass:[UILabel class]]){
UILabel* label = (UILabel*)view;
if([label.text isEqualToString:@"1111111111111"]){
label.text = LANGLOC(@"videolist_category_choosen");
}else if([label.text isEqualToString:@"2"]){
label.text = LANGLOC(@"videolist_category_followed");
}
break;
}
}
}
NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont boldSystemFontOfSize:12], NSFontAttributeName, nil];
[_sgmntStatusUI setTitleTextAttributes:textAttributes forState:UIControlStateNormal];
對於ios7以后的游離
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.