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

iOS實現(xiàn)自定義購物車角標顯示購物數(shù)量(添加商品時角標抖動 Vie)

 更新時間:2017年04月10日 10:55:46   作者:水神_O_lei  
本文主要介紹了iOS實現(xiàn)自定義購物車及角標顯示購物數(shù)量(添加商品時角標抖動 Vie)的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧

前言:

適用場景:商城類的 App 。將自定義的購物車 view 設(shè)置為 navigationItem 的導航欄按鈕。效果圖如下:

圖1、右上角的購物車即是我們定義的view

實現(xiàn)原理:

1、利用 navigationItem 可以將 UIView 設(shè)置為導航欄的按鈕;

2、將一個 UIButton 和 一個 UILabel 添加到一個 UIView 上。然后將這個 UIView 設(shè)置為 navigationItem 的右側(cè)按鈕;3、UILabel 控件的動畫效果。

具體實現(xiàn)代碼如下:​

​1、ShopCarView.h 文件

#import
@protocol ShopCarButtonDelegate <</span>NSObject>
// 代理的方法,在此方法內(nèi),完成按鈕的點擊事件。
- (void)shopCarButtonClickAction;
@end
@interfaceShopCarView : UIView
@property (nonatomic, assign)id<</span>ShopCarButtonDelegate> delegate;
// 為購物車設(shè)置角標內(nèi)數(shù)值
- (void)setShopCarCount:(NSString *)count;
@end

2、ShopCarView.m 文件

​#import "ShopCarView.h"
@interfaceShopCarView()
@property (nonatomic, strong)UIButton *carButton;
@property (nonatomic, strong)UILabel *countLabel;
@end
@implementation ShopCarView
- (instancetype)initWithFrame:(CGRect)frame{
 CGRect myFrame = CGRectMake(0, 0, 40, 40);
 self = [superinitWithFrame:myFrame];
 if (self) {
 [selfaddSubview:self.carButton];
 }
 returnself;
}
- (UIButton *)carButton{
 if (!_carButton) {
 _carButton = [UIButtonbuttonWithType:UIButtonTypeCustom];
 _carButton.frame = CGRectMake(0, 8, 32, 32);
 [_carButtonsetImage:[UIImageimageNamed:@"購物1"] forState:UIControlStateNormal];
 [_carButtonaddTarget:selfaction:@selector(shopCarButtonAction) forControlEvents:UIControlEventTouchUpInside];
 }
 return_carButton;
}
- (UILabel *)countLabel{
 if (!_countLabel) {
 _countLabel = [[UILabelalloc] initWithFrame:CGRectMake(24, 5, 16, 16)];
 _countLabel.backgroundColor = [UIColorredColor];
 _countLabel.textAlignment = NSTextAlignmentCenter;
 _countLabel.textColor = [UIColorwhiteColor];
 _countLabel.layer.cornerRadius = 8;
 _countLabel.font = [UIFontsystemFontOfSize:12];
 _countLabel.layer.masksToBounds = YES;
 [selfaddSubview:_countLabel];
 }
 return_countLabel;
}
// 為購物車設(shè)置角標內(nèi)數(shù)值
- (void)setShopCarCount:(NSString *)count{
 if ([count integerValue] == 0) {
 if (_countLabel) {
  [_countLabelremoveFromSuperview];
  _countLabel = nil;
 }
 return;
 }
 if ([count integerValue] > 9) {
 self.countLabel.text = @"9+";
 }else{
 self.countLabel.text = count;
 }
 [selfshakeView:_countLabel];
}
// 實現(xiàn)的代理方法
- (void)shopCarButtonAction{
 [self.delegateshopCarButtonClickAction];
}
// 實現(xiàn)抖動效果
-(void)shakeView:(UIView*)viewToShake
{
 CGFloat t =2.0;
 CGAffineTransform translateRight =CGAffineTransformTranslate(CGAffineTransformIdentity, t,0.0);
 CGAffineTransform translateLeft =CGAffineTransformTranslate(CGAffineTransformIdentity,-t,0.0);
 viewToShake.transform = translateLeft;
[UIViewanimateWithDuration:0.07delay:0.0options:UIViewAnimationOptionAutoreverse|UIViewAnimationOptionRepeatanimations:^{
 [UIViewsetAnimationRepeatCount:2.0];
 viewToShake.transform = translateRight;
 } completion:^(BOOL finished){
 if(finished){
[UIViewanimateWithDuration:0.05delay:0.0options:UIViewAnimationOptionBeginFromCurrentStateanimations:^{
  viewToShake.transform =CGAffineTransformIdentity;
  } completion:NULL];
 }
 }];
}
@end

​代碼很簡單,邏輯也比較清晰。使用代理方法,將自定義的 View 的屬性隱藏起來,打到很好的封裝效果。

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • iOS CoreTelephony 實現(xiàn)監(jiān)聽通話狀態(tài)

    iOS CoreTelephony 實現(xiàn)監(jiān)聽通話狀態(tài)

    這篇文章主要介紹了iOS CoreTelephony 實現(xiàn)監(jiān)聽通話狀態(tài) 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • iOS實現(xiàn)簡單的二級菜單效果

    iOS實現(xiàn)簡單的二級菜單效果

    這篇文章給大家主要介紹的是利用iOS如何實現(xiàn)簡單的菜單效果,文中給出了詳細的示例代碼,而且實現(xiàn)的比較簡單,適合新人學習使用。感興趣的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • iOS音樂后臺播放及鎖屏信息顯示

    iOS音樂后臺播放及鎖屏信息顯示

    這篇文章主要為大家詳細介紹了iOS音樂后臺播放及鎖屏信息顯示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 簡單好用的iOS導航欄封裝.runtime屬性控制實例代碼

    簡單好用的iOS導航欄封裝.runtime屬性控制實例代碼

    這篇文章主要給大家介紹了簡單好用的iOS導航欄封裝.runtime屬性控制的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-10-10
  • IOS身份證識別(OCR源碼)詳解及實例代碼

    IOS身份證識別(OCR源碼)詳解及實例代碼

    這篇文章主要介紹了IOS身份證識別(OCR源碼)詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 詳解iOS App中UISwitch開關(guān)組件的基本創(chuàng)建及使用方法

    詳解iOS App中UISwitch開關(guān)組件的基本創(chuàng)建及使用方法

    UISwitch組件就是我們平時在iOS設(shè)置菜單中開到的那種左右滑動的開關(guān)按鈕,當然我們在開發(fā)時可以進行更多的自定義,這里我們就來詳解iOS App中UISwitch開關(guān)組件的基本創(chuàng)建及使用方法
    2016-05-05
  • iOS block循環(huán)引用詳解及常見誤區(qū)

    iOS block循環(huán)引用詳解及常見誤區(qū)

    這篇文章主要介紹了iOS block循環(huán)引用詳解和應(yīng)用,常見誤區(qū)詳解,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • iOS實現(xiàn)聯(lián)系人按照首字母進行排序的實例

    iOS實現(xiàn)聯(lián)系人按照首字母進行排序的實例

    下面小編就為大家分享一篇iOS實現(xiàn)聯(lián)系人按照首字母進行排序的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • iOS umeng 獲取deviceToken的方法

    iOS umeng 獲取deviceToken的方法

    下面小編就為大家分享一篇iOS umeng 獲取deviceToken的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 你應(yīng)該知道的tableViewCell行高計算處理

    你應(yīng)該知道的tableViewCell行高計算處理

    這篇文章主要給大家介紹了關(guān)于tableViewCell行高計算的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12

最新評論

夏邑县| 外汇| 临颍县| 金坛市| 石嘴山市| 湟源县| 迁安市| 阳朔县| 高尔夫| 武平县| 高雄县| 阜阳市| 上饶县| 镇雄县| 墨脱县| 呼图壁县| 淅川县| 华宁县| 荣昌县| 上栗县| 浮山县| 九寨沟县| 香格里拉县| 赤城县| 景洪市| 罗定市| 宝清县| 神木县| 米易县| 内乡县| 武平县| 晋宁县| 通化市| 钦州市| 西乌| 额尔古纳市| 白河县| 兴安县| 布尔津县| 正阳县| 娄底市|