簡體   English   中英

iOS - 更改UISegmentController中每個段的文本字體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM