美文网首页
IOS开发(三)高级控件

IOS开发(三)高级控件

作者: 涛子_024d | 来源:发表于2020-08-24 11:12 被阅读0次

IOS基础控件思维导图

image-20200729192506800.png

三、高级控件

1、UITabBarController

(1)常用属性

open var selectedIndex: Int

(2)常用方法

open func setViewControllers(_ viewControllers: [UIViewController]?, animated: Bool)

(3)内嵌控制器说明

//子视图正常情况下的图片
self.tabBarItem.image

//子视图文字
self.tabBarItem.title

//子视图在被选状态下的图片
self.tabBarItem.selectedImage

//子视图背景文字颜色
self.tabBarItem.backgroudColor

//子视图背景文字
self.tabBarItem.backgroudValue

2、UIPageViewController-->UIPageViewControllerDelegate,UIPageViewControllerDataSource

(1)常用属性

weak open var delegate: UIPageViewControllerDelegate?

weak open var dataSource: UIPageViewControllerDataSource? 

(2)常用方法

//构造方法 ,第一个参数决定页面翻转的风格,第二个决定页面的方向(水平Or垂直)
public init(transitionStyle style: UIPageViewController.TransitionStyle, navigationOrientation: UIPageViewController.NavigationOrientation, options: [UIPageViewController.OptionsKey : Any]? = nil)
//添加其他的控制器到pageviewcontroller中
open func setViewControllers(_ viewControllers: [UIViewController]?, direction: UIPageViewController.NavigationDirection, animated: Bool, completion: ((Bool) -> Void)? = nil)

(3)代理方法

//改变发生前
optional func pageViewController(_ pageViewController: UIPageViewController, willTransitionTo pendingViewControllers: [UIViewController])

//改变发生完成时
optional func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool)

//旋转方向发生改变
optional func pageViewController(_ pageViewController: UIPageViewController, spineLocationFor orientation: UIInterfaceOrientation) -> UIPageViewController.SpineLocation

(4)数据源方法

//当前controller的前一个controller是什么
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController?
//当前controller的后一个controller是什么
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController?

3、UINavigationController

(1)常用属性

open var isNavigationBarHidden: Bool

open var navigationBar: UINavigationBar { get } 

(2)常用方法

 open func pushViewController(_ viewController: UIViewController, animated: Bool) 
    
open func popViewController(animated: Bool) -> UIViewController?

open func popToViewController(_ viewController: UIViewController, animated: Bool) -> [UIViewController]? 

open func popToRootViewController(animated: Bool) -> [UIViewController]?

open var topViewController: UIViewController? { get } 

4、UIAlertController+UIAlertAction

(1)UIAlertAction常用属性+方法(相当于按钮)

var isEnabled: Bool

//参数 : 1、动作的名字 2、动作的类型 3、动作执行的闭包
public convenience init(title: String?, style: UIAlertAction.Style, handler: ((UIAlertAction) -> Void)? = nil)

(2)常用属性

open var title: String?

open var message: String?

(3)常用方法

//三个参数:1、标题 2、标题下的提示信息 3、类型
public convenience init(title: String?, message: String?, preferredStyle: UIAlertController.Style)

open func addAction(_ action: UIAlertAction)

open func addTextField(configurationHandler: ((UITextField) -> Void)? = nil)

5、UITableView-->UITableViewDelegate,UITableViewDataSource

(1)常用属性

weak open var dataSource: UITableViewDataSource?

weak open var delegate: UITableViewDelegate?

open var backgroundView: UIView?

open var separatorStyle: UITableViewCell.SeparatorStyle

open var separatorColor: UIColor?  

(2)常用方法

open func reloadData()

———————————————————————————————————————————————————————————————————————————————

open func rectForHeader(inSection section: Int) -> CGRect

open func rectForFooter(inSection section: Int) -> CGRect

open func rectForRow(at indexPath: IndexPath) -> CGRect

———————————————————————————————————————————————————————————————————————————————

open func insertRows(at indexPaths: [IndexPath], with animation: UITableView.RowAnimation)

open func deleteRows(at indexPaths: [IndexPath], with animation: UITableView.RowAnimation)

open func reloadRows(at indexPaths: [IndexPath], with animation: UITableView.RowAnimation)

———————————————————————————————————————————————————————————————————————————————
open func insertSections(_ sections: IndexSet, with animation: UITableView.RowAnimation)

open func deleteSections(_ sections: IndexSet, with animation: UITableView.RowAnimation)

open func reloadSections(_ sections: IndexSet, with animation: UITableView.RowAnimation)

———————————————————————————————————————————————————————————————————————————————
//注册的作用是先自定义好一个cell的类,用这个类作为复用cell的模板
open func register(_ nib: UINib?, forCellReuseIdentifier identifier: String)

open func register(_ cellClass: AnyClass?, forCellReuseIdentifier identifier: String)

open func register(_ nib: UINib?, forHeaderFooterViewReuseIdentifier identifier: String)

open func register(_ aClass: AnyClass?, forHeaderFooterViewReuseIdentifier identifier: String)

(3)代理方法

optional func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)

optional func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)

optional func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int)

optional func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath)

optional func tableView(_ tableView: UITableView, didEndDisplayingHeaderView view: UIView, forSection section: Int)

optional func tableView(_ tableView: UITableView, didEndDisplayingFooterView view: UIView, forSection section: Int)

———————————————————————————————————————————————————————————————————————————————

//行高
optional func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
//头高
optional func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
//尾高
optional func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?

optional func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView?

———————————————————————————————————————————————————————————————————————————————

optional func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath?

optional func tableView(_ tableView: UITableView, willDeselectRowAt indexPath: IndexPath) -> IndexPath?

optional func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

optional func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath)

(4)数据源方法

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

optional func numberOfSections(in tableView: UITableView) -> Int

optional func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? 

optional func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String?

6、UICollectionView-->UICollectionViewDelegate,UICollectionViewDataSource

(1)常用属性

weak open var delegate: UICollectionViewDelegate?

weak open var dataSource: UICollectionViewDataSource?

(2)常用方法

 open func reloadData() 

open func insertSections(_ sections: IndexSet)

open func deleteSections(_ sections: IndexSet)

open func reloadSections(_ sections: IndexSet)
 
open func insertItems(at indexPaths: [IndexPath])

open func deleteItems(at indexPaths: [IndexPath])

open func reloadItems(at indexPaths: [IndexPath])

(3)代理方法

ptional func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool

optional func collectionView(_ collectionView: UICollectionView, shouldDeselectItemAt indexPath: IndexPath) -> Bool

optional func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)

optional func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath)

optional func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath)

optional func collectionView(_ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath)

(4)数据源方法

optional func numberOfSections(in collectionView: UICollectionView) -> Int

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell

7、UIScrollView-->UIScrollViewDelegate

(1)常用属性

weak open var delegate: UIScrollViewDelegate? 

//垂直方向滚动,默认yes
open var showsVerticalScrollIndicator: Bool 

//水平方向滚动,默认yes
open var showsHorizontalScrollIndicator: Bool

open var indicatorStyle: UIScrollView.IndicatorStyle

//缩放
open var minimumZoomScale: CGFloat 

open var maximumZoomScale: CGFloat 

open var zoomScale: CGFloat

//scrollview所能滑动的范围,可以超过屏幕尺寸
open var contentSize: CGSize 

(2)代理方法

optional func scrollViewDidScroll(_ scrollView: UIScrollView) // any offset changes

optional func scrollViewDidZoom(_ scrollView: UIScrollView) // any zoom scale changes

optional func scrollViewWillBeginDragging(_ scrollView: UIScrollView)

optional func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>)

optional func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool)

optional func scrollViewDidScrollToTop(_ scrollView: UIScrollView) // called when scrolling animation finished. may be called immediately if already at top

相关文章

网友评论

      本文标题:IOS开发(三)高级控件

      本文链接:https://www.haomeiwen.com/subject/kilurktx.html