0

将 UISlider 连接到 fontSize [ (IBAction)font1 和 (IBAction)font2 ] 的可能方式。这是代码

。H

@interface ViewController : UIViewController
{
    IBOutlet UISlider* fontSizeSlider;
    IBOutlet UITextView* textView;
}
-(IBAction)sliderValueChanged:(UISlider*)sender;
-(IBAction)font1;
-(IBAction)font2;
@end

.m

-(IBAction)sliderValueChanged:(UISlider*)sender
{
   textView.font = [UIFont fontWithName:@"??????" size:sender.value];
}

-(IBAction)font1{
   textView.font = [UIFont fontWithName:@"Heiti TC" size:18];
}

-(IBAction)font2{
    textView.font = [UIFont fontWithName:@"Marker Felt" size:18];
}

-(IBAction)font1; //[UIButton]

-(IBAction)font1; //[UIButton]

-(IBAction)sliderValueChanged; //[UISlider]
4

3 回答 3

1

如果您想保留正在使用的字体,并在移动滑块时调整它的大小,您可以抓取现有字体实例并将其传递fontWithSize:以派生具有相同字体的新字体实例:

-(IBAction)sliderValueChanged:(UISlider*)sender
{
   textView.font = [textView.font fontWithSize:sender.value];
}
于 2012-12-24T23:54:28.733 回答
1

如果我理解正确,您希望能够从两种字体中进行选择。因此,您必须将字体名称存储在NSString. 像这样的东西:

。H

@interface ViewController : UIViewController
{
    IBOutlet UISlider* fontSizeSlider;
    IBOutlet UITextView* textView;
    NSString *currentFont;
}
-(IBAction)sliderValueChanged:(UISlider*)sender;
-(IBAction)font1;
-(IBAction)font2;
@end

.m

-(void)viewDidLoad {
    [super viewDidLoad];
    currentFont = @"Heiti TC"; //Or whatever your default font is
    textView.font = [UIFont fontWithName:currentFont size:sender.value];
}
-(IBAction)sliderValueChanged:(UISlider*)sender
{
   textView.font = [UIFont fontWithName:currentFont size:sender.value];
}

-(IBAction)font1{
   currentFont = @"Heiti TC";
   textView.font = [UIFont fontWithName:currentFont size:fontSizeSlider.value];
}

-(IBAction)font2{
   currentFont = @"Marker Felt";
   textView.font = [UIFont fontWithName:currentFont size:fontSizeSlider.value];
}
于 2012-12-24T23:55:24.103 回答
0

如果我对您的理解正确,您希望根据滑块的值更改字体大小。尝试使用此代码根据滑块值更改字体大小:

- (IBAction)sliderChangeFontSize:(id)sender {
     textView.font = [UIFont fontWithName:@"Heiti TC" size:slider.value];
}

然后将 IBAction 挂钩到 nib 文件中的 Slider 并选择 Sent Event 为“Value Changed”

或者

使用您使用的方法应该可以工作。唯一的问题是您必须将滑块委托连接到视图控制器,以便您能够使用发件人值。

于 2012-12-24T23:51:04.853 回答