最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS中的UISlider滑塊組件用法總結(jié)

 更新時間:2016年06月09日 09:27:32   作者:ian  
不僅是滑動開關(guān),UISlider組件也是常用的進度條制作工具,這里我們就一起來看一下iOS中的UISlider滑塊組件用法總結(jié),需要的朋友可以參考下

PC上的滑塊是很丑陋的,因為我們只能通過鼠標去拖動他。不過當(dāng)Jobs把它移植到IOS上時一切變得酷起來,因為我們可以通過手指去拖動它,這種感覺是很妙的。
滑塊為用戶提供了一種可見的做范圍調(diào)整的方法,用戶可以通過拖動一個滑動條改變它的值,并且可以對其配置以合適不同值域。你可以設(shè)置滑塊值的范圍,也可以在兩端加上圖片,以及進行各種調(diào)整讓它更美觀?;瑝K非常適合用于表示在很大范圍(但不精確)的數(shù)值中進行選擇,比如音量設(shè)置、靈敏度控制等諸如此類的用途。
一、創(chuàng)建
滑塊是一個標準的UIControl。我們可以通過代碼創(chuàng)建,如同開關(guān)(UISwitch)的寬與高都會被忽略一樣滑塊的高也會被忽略(但是寬度不會):

復(fù)制代碼 代碼如下:

UISlider* mySlider = [ [ UISlider alloc ] initWithFrame:CGRectMake(20.0,10.0,200.0,0.0) ];//高度設(shè)為0就好   

二、設(shè)定范圍與默認值
創(chuàng)建完畢的同時我們要設(shè)置好滑塊的范圍,如果你沒有設(shè)置,那么會使用默認的 0.0 到 1.0 之間的值。UISlider提供了兩個屬性來設(shè)置范圍:mininumValue 和 maxinumValue:
復(fù)制代碼 代碼如下:

mySlider.mininumValue = 0.0;//下限 
mySlider.maxinumValue = 50.0;//上限 

同時你也可以為滑塊設(shè)定一個默認值:
復(fù)制代碼 代碼如下:

mySlider.value = 22.0; 

三、兩端添加圖片
滑塊可以在任何一段顯示圖像。添加圖像后會導(dǎo)致滑動條縮短,所以記得要記得在創(chuàng)建的時候增加滑塊的寬度來適應(yīng)圖像。
復(fù)制代碼 代碼如下:

[ mySlider setMininumTrackImage: [ UIImage applicationImageNamed:@"min.png" ] forState: UIControlStateNormal ]; 
[ mySlider setMaxinumTrackImage: [ UIImage applicationImageNamed:@"max.png" ] forState: UIControlStateNormal ]; 

你可以根據(jù)滑塊的各種不同狀態(tài)顯示不同的圖像。下面是可用狀態(tài):
復(fù)制代碼 代碼如下:

UIControlStateNormal
UIControlStateHighlighted
UIControlStateDisabled
UIControlStateDisabled
UIControlStateSelected

四、顯示控件
復(fù)制代碼 代碼如下:

[ parentView addSubview:myslider ];//添加到父視圖 

或 
復(fù)制代碼 代碼如下:

[ self.navigationItem.titleView addSubview:myslider ];//添加到導(dǎo)航欄

五、讀取控件值
復(fù)制代碼 代碼如下:

float value = mySlider.value; 

六、通知
要想在滑塊值改變時收到通知,可以用UIControl類的addTarget方法為UIControlEventValueChanged事件添加一個動作。
復(fù)制代碼 代碼如下:

[ mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEventValueChanged ]; 

 只要滑塊停放(注意是停放,如果要在拖動中也觸發(fā),請看后文)到新的位置,你的動作方法就會被調(diào)用:
復(fù)制代碼 代碼如下:

- (void) sliderValueChanged:(id)sender{ 
        UISlider* control = (UISlider*)sender; 
        if(control == mySlider){ 
                  float value = control.value; 
                   /* 添加自己的處理代碼 */ 
         } 


如果要在拖動中也觸發(fā),需要設(shè)置滑塊的 continuos 屬性:
復(fù)制代碼 代碼如下:

mySlider.continuous = YES ; 

這個通知最簡單的一個實例就是實時顯示滑塊的值,很奇怪的蘋果顯示滑塊的值是一個私有的API(setShowValue),私有就私有,大不了我不用就是。我們可以用一個UILabel來顯示值,在每次觸發(fā)上面的方法時改變label的值,不就可以實時顯示了嗎?當(dāng)然我們可以做的不僅僅是這個,還有更多的 cool 事情可以去實現(xiàn),就看你的手段與想象力了。

七、UISlider兩邊有空隙的解決方法
之前做過一個播放器,音量條兩邊有空隙。在去新浪面試的時候,面試官提到了這個知識點。我在stackoverflow上爬了好久終于找到了方法,分享給iOS初學(xué)者。
重寫UISlider的這個方法

復(fù)制代碼 代碼如下:

- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value
{
    rect.origin.x = rect.origin.x - 10 ;
    rect.size.width = rect.size.width +20;
    return CGRectInset ([super thumbRectForBounds:bounds trackRect:rect value:value], 10 , 10);
}

當(dāng)然UISlider還有這么幾個方法可以重寫
復(fù)制代碼 代碼如下:

-(CGRect)trackRectForBounds:(CGRect)bounds
{
    bounds.origin.x=15;
    bounds.origin.y=bounds.size.height/3;
    bounds.size.height=bounds.size.height/5;
    bounds.size.width=bounds.size.width-30;
    return bounds;
}
- (CGRect)minimumValueImageRectForBounds:(CGRect)bounds;
- (CGRect)maximumValueImageRectForBounds:(CGRect)bounds;

您可能感興趣的文章:

相關(guān)文章

  • iOS當(dāng)多個網(wǎng)絡(luò)請求完成后執(zhí)行下一步的方法詳解

    iOS當(dāng)多個網(wǎng)絡(luò)請求完成后執(zhí)行下一步的方法詳解

    在多線程中,有時候我們會遇到一個界面同時有多個網(wǎng)絡(luò)請求(比如a,b,c,d四個網(wǎng)絡(luò)請求),在這四個個請求結(jié)束后,在請求到數(shù)據(jù)去做其他操作(UI更新等),下面這篇文章主要給大家介紹了關(guān)于iOS當(dāng)多個網(wǎng)絡(luò)請求完成后執(zhí)行下一步的相關(guān)資料,需要的朋友可以參考下。
    2017-12-12
  • iOS常見宏理解及使用方法

    iOS常見宏理解及使用方法

    這篇文章主要給大家介紹了關(guān)于iOS常見宏理解及使用方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • iOS中tableView cell分割線的一些設(shè)置技巧

    iOS中tableView cell分割線的一些設(shè)置技巧

    在項目開發(fā)中我們會常常遇到tableView 的cell分割線顯示不全,左邊會空出一截像素,更有甚者想改變系統(tǒng)的分割線,下面通過這篇文章來一起學(xué)習(xí)學(xué)習(xí)在iOS中tableView cell分割線的一些設(shè)置技巧,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • IOS 鍵盤擋住輸入框的問題解決辦法

    IOS 鍵盤擋住輸入框的問題解決辦法

    這篇文章主要介紹了IOS 鍵盤擋住輸入框的問題解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Terminal該如何自定義提示詳解

    Terminal該如何自定義提示詳解

    這篇文章主要給大家介紹了關(guān)于Terminal如何自定義提示的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • IOS程序開發(fā)之禁止輸入表情符號實例代碼

    IOS程序開發(fā)之禁止輸入表情符號實例代碼

    如何禁止輸入表情符號呢?下面腳本之家小編給大家分享IOS程序開發(fā)之禁止輸入表情符號實例代碼,感興趣的朋友參考下吧
    2016-04-04
  • iOS MRC 下 block 循環(huán)引用問題實例講解

    iOS MRC 下 block 循環(huán)引用問題實例講解

    本文通過文字說明加代碼的形式給大家介紹了iOS MRC 下 block 循環(huán)引用問題,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-12-12
  • iOS兩丫技術(shù)之UILabel性能不夠的解決方法

    iOS兩丫技術(shù)之UILabel性能不夠的解決方法

    這篇文章主要介紹了iOS中控件UILabel性能不夠而自定義UILabel的過程,UILable是iPhone界面最基本的控件,主要用來顯示文本信息,下面通過本文我們來了解一下
    2022-08-08
  • iOS發(fā)送驗證碼倒計時應(yīng)用

    iOS發(fā)送驗證碼倒計時應(yīng)用

    點擊發(fā)送驗證碼button。倒計時開始,這篇文章就為大家詳細介紹了iOS發(fā)送驗證碼倒計時應(yīng)用的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 關(guān)于iOS獲取屬性你真的了解嗎?

    關(guān)于iOS獲取屬性你真的了解嗎?

    這篇文章主要給大家介紹了關(guān)于iOS取屬性的相關(guān)資料,當(dāng)說到取屬性,相信很多的iOS開發(fā)者們會說出很多,但你就真的理解嗎?下面就來詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12

最新評論

海阳市| 大关县| 安远县| 五河县| 莱州市| 昌江| 徐闻县| 大理市| 祁阳县| 通化县| 桃园县| 修文县| 宜丰县| 和平区| 宜君县| 南部县| 昌邑市| 竹山县| 新田县| 延安市| 平邑县| 额济纳旗| 湾仔区| 福鼎市| 伊金霍洛旗| 安宁市| 墨脱县| 社会| 肥东县| 贺州市| 阿拉尔市| 紫金县| 通化县| 时尚| 泸水县| 彭阳县| 德江县| 尤溪县| 兴宁市| 扎囊县| 濉溪县|