我有一个带有一个滑块和一个标签的视图.我正在显示标签上的倒计时和使用slider在标签上设置时间.现在假设我已启动计时器,因此标签的值每分钟都在减少,滑块的值也在减少.现在我想要,如果我关闭我的应用程序然后重新打开计时器应该已经运行+标签的值是根据时间+滑块值是根据时间?这是我正在做的图像
一切都在模拟器上运行没有问题.但是,当我把它放在我的设备上它只显示ThumbImage.这真的很奇怪.我认为这可能是iOS版本问题或内存问题.我的设备是iPhone 3GS iOS 4.1.Xcode版本3.2.5.
@interface BlueChalkSlider : UISlider {}
@end
@implementation BlueChalkSlider
- (id)initWithCoder:(NSCoder *)decoder {
if ((self = [super initWithCoder: decoder])) {
self.backgroundColor = [UIColor clearColor];
[self setThumbImage:[UIImage imageNamed:@"Chalk.png"] forState:UIControlStateNormal];
[self setMinimumTrackImage:[UIImage imageNamed:@"ChalklineBlue.png"] forState:UIControlStateNormal];
[self setMaximumTrackImage:[UIImage imageNamed:@"ChalklineWhite.png"] forState:UIControlStateNormal];
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud) 我希望在滑动UISlider结束时触发一个方法.我在xib中使用了UISlider的"editingDidEnd"事件并将其附加到IBAction方法但是该方法没有被调用.任何人都可以帮我知道滑动时间是什么在UISlider上结束了?
我正在写一个iPod应用程序替代品,在我的"正在播放"视图中,我希望有一个进度指示器,如iPod应用程序,显示当前位置,并允许用户拖动以更改播放位置.
我怎么做?
我使用UISlider和UIProgressView吗?
从iOS5开始,UIKit可以使用自定义图像进行自定义.我们有一个必须与iOS 4兼容的应用程序,但如果用户有iOS 5,我们想要自定义滑块.
例:
[[UISlider appearance] setMaximumTrackImage:maxImage forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
如果可以执行此调用,在运行时检查的安全方法是什么?respondsToSelector:方法仅用于实例,但这里它是一个类本身.
我使用Slider到Resize和Rotate-
对于旋转 -
CGAffineTransform transform = editingView.transform;
transform = CGAffineTransformMakeRotation(sliderVal * 2*M_PI / 30);
editingView.transform = transform;
Run Code Online (Sandbox Code Playgroud)
对于调整大小 -
CGAffineTransform t = CGAffineTransformMakeScale(sliderVal/30, sliderVal/30);
CGPoint center = editingView.center;
[UIView animateWithDuration:0.5
animations:^{
editingView.transform = t;
editingView.center = center;
}
completion:^(BOOL finished) {
}];
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,两者分别工作正常.
但我必须resize旋转视图,或旋转调整大小的视图.
我看到了许多建议来,因为我使用单独的行为CGAffineTransformMakeRotation,CGAffineTransformMakeScale如果我使用CGAffineTransformScale,CGAffineTransformRotation然后我的问题就会解决.
问题是当我使用时,CGAffineTransform缩放不正确,View从屏幕上消失.
在iOS的早期版本中一切正常,但在iOS 7上没有.它没有为UISlider设置自定义设计,因此视图上没有任何内容,"Volume"滑块视图为空.其他一切都很好.
码:
for (UISlider *slider in volumeSlider.subviews) {
NSLog(@"Searching!");
if ([slider isKindOfClass:[UISlider class]]) {
NSLog(@"SLIDER FOUND!");
[slider setThumbImage:[UIImage imageNamed:@"thumbSlider.png"] forState:UIControlStateNormal];
[slider setMinimumTrackImage:[[UIImage imageNamed:@"sliderMax.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal ];
[slider setMaximumTrackImage:[[UIImage imageNamed:@"sliderMin.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal ];
}
}
Run Code Online (Sandbox Code Playgroud) 我正在学习Swift并尝试使用Slider以编程方式更改Label值.我在func中收到错误,说paybackLabel是一个未解析的标识符.该怎么做?
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//Create Label
let paybackLabel = UILabel(frame: CGRectMake(0, 0, 300, 41))
paybackLabel.center = CGPointMake(190, 284)
paybackLabel.textAlignment = NSTextAlignment.Center
paybackLabel.font = UIFont(name: paybackLabel.font.fontName, size: 40)
paybackLabel.textColor = UIColor.whiteColor()
paybackLabel.text = "Hello World"
self.view.addSubview(paybackLabel)
//Create Slider
let paybackSlider = UISlider(frame: CGRectMake (45,546,310,31))
paybackSlider.minimumValue = 0
paybackSlider.maximumValue = 1000
paybackSlider.continuous = true
paybackSlider.tintColor = UIColor.blueColor()
paybackSlider.value = 500
paybackSlider.addTarget(self, action: "paybackSliderValueDidChange:",forControlEvents: .ValueChanged)
self.view.addSubview(paybackSlider)
}
func paybackSliderValueDidChange(sender: UISlider!)
{
print("payback value: \(sender.value)")
paybackLabel.text …Run Code Online (Sandbox Code Playgroud) 我遇到以下情况的问题:
我有UITableView动态细胞.其中,我使用自定义的UITableViewCell一个UISlider.如何获得滑块的值?
我创建了以下示例:(项目文件可以在这里下载:链接)
SliderClass.swift
import UIKit
class SliderClass: NSObject {
var title: String
var subtitle: String
var sliderMinimum: Float
var sliderMaximum: Float
init(title: String, subtitle: String, sliderMinimum: Float, sliderMaximum: Float) {
self.title = title
self.subtitle = subtitle
self.sliderMinimum = sliderMinimum
self.sliderMaximum = sliderMaximum
}
}
Run Code Online (Sandbox Code Playgroud)
SliderTableViewCell.swift
import UIKit
class SliderTableViewCell: UITableViewCell {
@IBOutlet weak var cellTextLabel: UILabel!
@IBOutlet weak var cellDetailTextLabel: UILabel!
@IBOutlet weak var cellSlider: UISlider!
override func awakeFromNib() {
super.awakeFromNib() …Run Code Online (Sandbox Code Playgroud) 在过去的一天中,我遇到了一个困扰我的问题,而我只是想不出解决方案...
我有一个UISlider,范围从值1到3(这就是我们需要的方式)。滑块是连续的,因为它实际上根据其当前值更新一些属性。现在,我想实现一个功能,其中滑块根据用户开始触摸或结束触摸来触发动作。
我尝试使用该.touchDown方法来检测触摸的开始,效果很好。但是,当我尝试使用.touchUpInside并.touchUpOutside检测用户何时松开手指时,该事件在适当的时间不会触发。
当我在滑杆上拖动手指(距离其起点一定距离)时,事件触发。但是当我短暂地触摸它或移动它很少时,触摸事件根本不会触发...
有人可以帮我吗?这是我用来设置滑块的代码:
let slider: UISlider = {
let slider = UISlider()
slider.isContinuous = true
slider.minimumValue = 1
slider.maximumValue = 3
slider.setMinimumTrackImage(#imageLiteral(resourceName: "minimumSliderTrackImage").resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 20)), for: .normal)
slider.setMaximumTrackImage(#imageLiteral(resourceName: "maximumSliderTrackImage").resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 20)), for: .normal)
let sliderThumb = #imageLiteral(resourceName: "sliderThumbImage")
slider.setThumbImage(sliderThumb, for: .normal)
slider.addTarget(self, action: #selector(adjustPriceLabel), for: .valueChanged)
slider.addTarget(self, action: #selector(handleTouchDown), for: .touchDown)
slider.addTarget(self, action: #selector(handleTouchUp), for: [.touchUpInside, .touchUpOutside])
slider.setValue(2.0, …Run Code Online (Sandbox Code Playgroud)