iPhone, как я могу уменьшить размер шрифта в кнопках на листе действий? - PullRequest
3 голосов
/ 05 октября 2010

Я хочу уменьшить размер шрифта для текста на кнопках моего листа действий, так как мой текст длиннее ширины.

Как уменьшить размер шрифта?

Я предполагаю, что вы можете добавить такие вещи, как представления выбора, к листам действий, которые мне могут понадобиться, чтобы добавить свои собственные кнопки на лист действий, если да, то как?

Мне нужен пример.* РЕДАКТИРОВАТЬ: я немного продвинулся, но сама кнопка не отображается, но вы можете увидеть, как она работает с изменением текста кнопки, когда вы нажимаете на нее.

        UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker" 
                                                          delegate:self
                                                 cancelButtonTitle:@"Cancel"
                                            destructiveButtonTitle:nil
                                                 otherButtonTitles:@"OK",nil];    

        CGRect frame = CGRectMake(100.0, 80.0, 100.0, 40.0);

        UIButton *pickerView = [[UIButton alloc] initWithFrame:frame];

        [pickerView setTitle:@"FRED" forState:UIControlStateNormal];

        [pickerView setTitle:@"Go Back" forState:UIControlStateNormal];
        [pickerView setTitleColor:[UIColor blackColor] forState:UIControlEventTouchDown];
        pickerView.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
        pickerView.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
        //[removeButton addTarget:self action:@selector(buttonEvent:) forControlEvents:UIControlEventTouchDown];
        [pickerView setBackgroundColor:[UIColor blueColor]];


        [menu addSubview:pickerView];
        [menu showInView:self.view];        

        [pickerView release];
        [menu release];  

1 Ответ

3 голосов
/ 05 октября 2010

Вы можете сделать это напрямую, но учтите, что кнопки на листе действий не являются стандартными кнопками UIB, а являются собственным подклассом частного управления. По этой причине, когда мне нужно настроить лист действий, я добавляю свое собственное настраиваемое подпредставление в UIActionSheet и затем изменяю размер листа, чтобы соответствовать. Недостатком является то, что для соответствия внешнему виду мне нужен пользовательский фон кнопки изображения. Я адаптировал (но не проверял в компиляторе) этот пример из Встраивание UIDatePicker в UIActionSheet . Вместо средства выбора просто добавьте созданный вами xib UIView.

UIDatePicker *pickerView = [[UIDatePicker alloc] init];
pickerView.datePickerMode = UIDatePickerModeDate;
[myUIActionSheet addSubview:pickerView];
[myUIActionSheet showInView:self.view];        
[myUIActionSheet setBounds:CGRectMake(0,0,320, myUIActionSheet.bounds.size.height + pickerView.bounds.size.height)];

CGRect pickerRect = pickerView.bounds;
pickerRect.origin.y = - pickerView.bounds.size.height; //you may need to change this offset
pickerView.bounds = pickerRect;

[pickerView release];
[myUIActionSheet release];

РЕДАКТИРОВАТЬ: Чтобы включить подпредставление из XIB, добавьте UIView на верхний уровень XIB и подключите его к свойству UIView в вашем контроллере, как если бы это был обычный компонент интерфейса. В вашем контроллере он теперь будет доступен.

alt text

Вы также можете связывать действия кнопок обычным способом вместо использования обратного вызова листа действий. Вам нужно будет закрыть лист действий после печати чем-то вроде [myUIActionSheet.dismissWithClickedButtonIndex:0 animated:YES]; Я думаю, что отклонение его, как если бы оно было модальным, также будет работать, IIRC.

...