2012-03-25 82 views
0

我在我的应用程序中连接了几个方法的Slider。在我的viewDidLoad中,我设置了一个自定义的拇指和图像,两者都没有出现。没有错误或警告,只是滑块似乎没有连接到我的代码,即使我在.xib中创建了连接,但我得到了NSLog打印输出,所以我知道正在调用viewDidLoad方法。自定义UISlider不起作用

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    // initialize custom UISlider (you have to do this in viewdidload or applicationdidfinishlaunching. 
    UIImage *stetchLeftTrack= [[UIImage imageNamed:@"Nothing"] 
           stretchableImageWithLeftCapWidth:30.0 topCapHeight:0.0]; 
    UIImage *stetchRightTrack= [[UIImage imageNamed:@"Nothing"] 
           stretchableImageWithLeftCapWidth:30.0 topCapHeight:0.0]; 
    [slideToUnlock setThumbImage: [UIImage imageNamed:@"SlideToStop"] forState:UIControlStateNormal]; 
    [slideToUnlock setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal]; 
    [slideToUnlock setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal]; 
    NSLog(@"WATERMELON"); 
} 
+0

取得联系冲什么的NSLog(@“slideToUnlock:%@”,slideToUnlock),如果你把它放在你的NSLog(@“西瓜”)得出?我问,因为这里的第一件事是消除它是零的可能性。如果不是零,还要检查你正在加载的图像不是零。 – Obliquely 2012-03-25 18:32:13

+0

原来它是空的。我该如何防止这种情况? – Alex 2012-03-25 18:55:39

回答

0

如果slideToUnlock为null,则您需要:

  • 检查@property和@synthesize声明
  • 检查一切都连接好到您的厦门国际银行

我d还建议使用slideToUnlock的访问器,即[self slideToUnlock]而不是直接访问变量。

如果你不使用ARC,然后@property和@synthesize看起来就像这样:

@property (nonatomic, retain) IBOutlet UISlider* slideToUnlock; 
@synthesize slideToUnlock = _slideToUnlock; // make the ivar _slideToUnlock to distinguish it from the property 

如果你使用ARC(我不知道我自己),然后this question提供指导:

+0

啊。问题是我指的是slideToUnlock而不是_slideToUnlock,因为我设置了@synthesize slideToUnlock = _slideToUnlock; – Alex 2012-03-25 23:43:16

0

使用触摸打孔: -

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
<script src="http://code.jquery.com/ui/1.8.21/jquery-ui.min.js"></script> 
<script src="jquery.ui.touch-punch.min.js"></script> 


<script>$('#widget').draggable();</script> 

尽量避免多个JS。它可以创建Safari浏览器的问题 你可以从http://touchpunch.furf.com/