欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS仿網易簡單頭部滾動效果

 更新時間:2018年05月21日 15:53:23   作者:忝  
這篇文章主要為大家詳細介紹了iOS仿網易簡單頭部滾動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了iOS仿網易滾動效果片展示的具體代碼,供大家參考,具體內容如下

仿網易的主要思想為:

1. 設置好按鈕與線的寬度,
2. 將所需要的標題傳入并生成按鈕
3. 在點擊的時候,通過計算偏移量,將自身進行偏移
4. 偏移量的設置需要注意不能小于0并且不成大于contengsize-frame的寬度

具體代碼如下,可直接使用,需要注意的是需要先設置寬度,再傳標題數組才可自動調整,否則會固定為默認的60

另外,BtnArr與linelabel設置為readonly比較合理,不過這里還需再進行研究,不要強制使用這兩個屬性即可

頭文件如下:

//
// TitleScrollView.h
// @author 陳晉添
//
// Created by jkc on 16/7/14.
// Copyright © 2016年 cjt. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface TitleScrollView : UIScrollView

typedef void(^sectionTitleViewBlock)(NSInteger num);

@property (nonatomic, strong) NSMutableArray *BtnArr;   //形成的按鈕數組
@property (nonatomic, strong) UILabel *linelabel;    //底部line
@property (nonatomic, strong) sectionTitleViewBlock clickBolck; //block回調

@property (nonatomic, assign) NSInteger LineWidth;    //設置線的長度
@property (nonatomic, assign) NSInteger ButtonWidth;   //按鈕的寬度

/**
 * 通過標題數組進行設置頭部滾動條
 *
 * @param array 需要加入的標題
 */
-(void)AddArrView:(NSArray*)array;

/**
 * 可直接用代碼設置索引位置
 *
 * @param index 索引位置
 */
-(void)setByIndex:(NSInteger)index;
@end

.m文件如下

//
// TitleScrollView.m
// @author 陳晉添
//
// Created by jkc on 16/7/14.
// Copyright © 2016年 cjt. All rights reserved.
//

#import "TitleScrollView.h"

#define TitleBtnTag 300   //button的tag值
@implementation TitleScrollView

-(instancetype)initWithFrame:(CGRect)frame
{
 if (self = [super initWithFrame:frame]) {

  //初始化自身
  [self setBackgroundColor:[UIColor whiteColor]];
  self.showsHorizontalScrollIndicator = false;
  _ButtonWidth = _LineWidth = 60;

  self.linelabel = [[UILabel alloc] initWithFrame:CGRectMake(0, self.frame.size.height-1.5, _LineWidth, 1.5)];
  [self.linelabel setBackgroundColor:TintColor];
  [self addSubview:self.linelabel];
 }
 return self;
}

-(void)AddArrView:(NSArray*)array
{
 self.BtnArr = [NSMutableArray array];
 for (int i=0; i<array.count; i++) {
  //初始化所有btn
  UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(i*_ButtonWidth, 0, _ButtonWidth,34)];
  [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
  btn.titleLabel.font = [UIFont systemFontOfSize:12];
  btn.titleLabel.textAlignment = NSTextAlignmentCenter;
  [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  [btn setTitle:array[i] forState:UIControlStateNormal];

  btn.tag = TitleBtnTag+i;

  [self addSubview:btn];
  [self.BtnArr addObject:btn];
 }
 //根據button個數設置內部大小
 [self setContentSize:CGSizeMake(array.count*_ButtonWidth, CGRectGetHeight(self.frame))];
}

-(void)click:(UIButton*)button
{
 //把所有的btn樣式重置
 for (UIButton *btn in self.BtnArr) {
  btn.titleLabel.font = [UIFont systemFontOfSize:12];
  btn.titleLabel.textAlignment = NSTextAlignmentCenter;
  [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
 }

 //特殊設置點擊的button樣式
 [button setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];

 //計算獲得偏移量,
 CGFloat index = (button.tag-TitleBtnTag)*_ButtonWidth-(self.frame.size.width-_ButtonWidth)/2;
 index = index<0?0:index;
 index = index>self.contentSize.width-CGRectGetWidth(self.frame)?self.contentSize.width-CGRectGetWidth(self.frame):index;

 //動畫效果偏移
 [self setContentOffset:CGPointMake(index, 0) animated:YES];
 [UIView animateWithDuration:0.3 animations:^{
  self.linelabel.frame = CGRectMake((button.tag-TitleBtnTag)*_ButtonWidth, self.frame.size.height-1, _LineWidth, 1);
 }];

 self.clickBolck(button.tag);
}

//通過外部代碼直接設置索引
-(void)setByIndex:(NSInteger)nowindex
{
 UIButton *button = self.BtnArr[nowindex];
 [self click:button];
}

@end

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • iOS自定義UITabBar中間按鈕

    iOS自定義UITabBar中間按鈕

    這篇文章主要為大家詳細介紹了iOS自定義UITabBar中間按鈕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • iOS 真機調試微信小程序

    iOS 真機調試微信小程序

    下面介紹下如何使用 Xcode、Reveal 和 Safari 來真機調試 iOS 上的小程序。感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-08-08
  • iOS通過UISwitch控制搖一搖

    iOS通過UISwitch控制搖一搖

    這篇文章主要為大家詳細介紹了iOS通過UISwitch控制搖一搖,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • iOS的音頻文件的格式轉換示例

    iOS的音頻文件的格式轉換示例

    這篇文章主要介紹了iOS的音頻文件的格式轉換示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 輕松理解iOS 11中webview的視口

    輕松理解iOS 11中webview的視口

    這篇文章主要介紹了iOS 11中webview的視口知識,需要的朋友可以參考下
    2017-09-09
  • iOS開發(fā)狀態(tài)欄及設置功能全面詳解

    iOS開發(fā)狀態(tài)欄及設置功能全面詳解

    這篇文章主要為大家介紹了iOS開發(fā)狀態(tài)欄及設置功能全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • iOS實現聯(lián)系人列表功能

    iOS實現聯(lián)系人列表功能

    這篇文章主要為大家詳細介紹了iOS實現聯(lián)系人列表功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • iOS獲取圖片區(qū)域主色的方法

    iOS獲取圖片區(qū)域主色的方法

    這篇文章主要為大家詳細介紹了iOS獲取圖片區(qū)域主色的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • iOS利用手機攝像頭測心率

    iOS利用手機攝像頭測心率

    這篇文章主要為大家詳細介紹了iOS利用手機攝像頭測心率的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS實現點擊圖片放大和長按保存圖片的示例

    iOS實現點擊圖片放大和長按保存圖片的示例

    本篇文章主要介紹了iOS實現點擊圖片放大和長按保存圖片的示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03

最新評論