iOS,使用ib在界面上做了一个label和一个slider,然后代码写了一个button,slider的值显示在label上,button让slider向下移动。当slider移动之后,拖动slider的手柄,slider会回到初始的位置?why?
#import "ViewController.h"
@interface ViewController ()
//@property (nonatomic, retain) UISlider *slider;
@property (nonatomic, retain) UIButton *button;
@property (weak, nonatomic) IBOutlet UILabel *label;
@property (weak, nonatomic) IBOutlet UISlider *slider;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//设置一个button来移动slider
_button = [[UIButton alloc] initWithFrame:CGRectMake(20, 500, 40, 40)];
_button.backgroundColor = [UIColor blackColor];
[self.view addSubview:_button];
[_button addTarget:self action:@selector(checkButton) forControlEvents:UIControlEventTouchUpInside];
}
-(void)checkButton
{
CGRect rect = _slider.frame;
rect.origin.y += 20;
_slider.frame = rect;
}
- (IBAction)changValue:(id)sender {
_label.text = \[NSString stringWithFormat:@"%f",_slider.value\];
}
- (void)didReceiveMemoryWarning {
\[super didReceiveMemoryWarning\];
// Dispose of any resources that can be recreated.
}
@end
질문을 떠나서, 너무 오랫동안 귀하의 질문에 아무도 답변하지 않은 이유는 단 하나입니다. 코드를 표준화하십시오. . . 아래 문제를 해결해 보세요. IB를 사용하여 인터페이스의 제약 조건을 드래그하세요. 단순히 프레임을 변경하는 것만으로는 제약 조건을 업데이트할 수 없습니다.