当我尝试以编程方式将 UISlider 添加到 UIView 时,如果宽度太高则不会出现

Posted

技术标签:

【中文标题】当我尝试以编程方式将 UISlider 添加到 UIView 时,如果宽度太高则不会出现【英文标题】:When I try programmatically adding a UISlider to UIView, it wont appear if the width is too high 【发布时间】:2012-02-13 17:16:49 【问题描述】:

我正在尝试以编程方式将垂直 UISlider 添加到具有可变高度的 UIView。这就是我目前所拥有的

int fullSize = [myBottle.barBottem intValue] - [myBottle.barTop intValue];
    CGRect frame = CGRectMake(200, 150,fullSize, 23);
    slider = [[UISlider alloc] initWithFrame:frame];
    [slider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged];
    [slider setBackgroundColor:[UIColor clearColor]];
    slider.minimumValue = 0.0;
    slider.maximumValue = fullSize;
    slider.continuous = YES;
    slider.transform = CGAffineTransformMakeRotation(M_PI * -
                                                0.5);;
[self.view addSubview:slider];

我的问题是,只要 fullSize > 320,滑块就不会出现。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

你可以试试这个 并制作滑块值方法

UISlider *loslider=[[UISlider alloc]initWithFrame:CGRectMake(60, 80, 200, 30)];

    [loslider addTarget:self action:@selector(slider_Action:)  forControlEvents:UIControlEventValueChanged];

    [loslider setMaximumValue:100.0];
    [loslider setMinimumValue:0.0];
    [loslider setValue:0.0];
    [self.view addSubview:loslider];

然后 -(void)slider:Action

【讨论】:

【参考方案2】:

UIScrollView 的框架不应大于包含 UIView 的矩形。您应该更改 UIScrollView 的 contentSize,改为设置其高度/宽度。

UIScrollView * scrollview ... ;
scrollview.contentSize = CGSizeMake(newwidth,newheight);

【讨论】:

【参考方案3】:

试试这个代码:

1.新建一个滑块

-(IBAction)mySlider
 
    CGRect frame = CGRectMake(20, 25, 200.0, 10.0);
    UISlider *slider = [[UISlider alloc] initWithFrame:frame];
    [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
    [slider setBackgroundColor:[UIColor clearColor]];
    slider.minimumValue = 0.0;
    slider.maximumValue = 50.0;
    slider.continuous = YES;
    slider.value = 25.0;
    [self.view addSubview:slider];

2.对于滑块动作

-(void)sliderAction:(id)sender

    float value = [sender floatValue];
    NSLog(@"%@",value);
    //-- Do further actions

【讨论】:

以上是关于当我尝试以编程方式将 UISlider 添加到 UIView 时,如果宽度太高则不会出现的主要内容,如果未能解决你的问题,请参考以下文章

点击以编程方式创建的 UISlider

当我尝试以编程方式添加 UIView 时,UITableViewCell 高度不会自动调整(而是压扁我的 UIView)

使用 ConstraintSet 以编程方式将 Button 添加到 ConstrainLayout

以编程方式创建 UIToolbar

在 Swift 中使用 UISlider 以编程方式更改 UILabel

以编程方式将 UILabel 添加到集合单元,快速