如何在uiviewcontroller里加view

如何在uiviewcontroller里加view,第1张

方法/步骤:

创建工程项目和视图控制器

创建工程项目UICollectionView,新建一个UIViewController。选中工程,右键-New File…选择“Cocoa Touch Class”-Next,给个合理的名称ViewController,再Next完成。

在AppDelegate.m文件包含#import "ViewController.h"。添加代码:

UINavigationController *navC = [[UINavigationController alloc]initWithRootViewController:[[ViewController alloc]init]]

self.window.rootViewController = navC//将navC设置为根视图控制器。

修改一下ViewController的显示样式,执行编译,run一下,效果如图。

创建自定义UICollectionViewCell

选中工程,右键-New File…选择“Cocoa Touch Class”-Next,选择继承于UICollectionViewCell类,给个合理的名称CollectionViewCell,再Next完成。

1、自定义所需要的控件,比如UIImageView:

@property(nonatomic ,strong)UIImageView *imgView

2、初始化控件,在方法- (id)initWithFrame:(CGRect)frame中实现:

self.imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 30, 150, 140)]

self.imgView.backgroundColor = [UIColor groupTableViewBackgroundColor]

[self addSubview:self.imgView]

创建UICollectionView及添加代理

1、在ViewController.h添加事件代理和数据源代理<UICollectionViewDataSource,UICollectionViewDelegate>。

2、在ViewController.m创建UICollectionView。需要使用UICollectionViewFlowLayout来创建,使用方法- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout如果只用普通的init方法,是实现不了的。

4、代理授权并添加至视图。

self.collectionView.delegate = self

self.collectionView.dataSource = self

[self.view addSubview:self.collectionView]

把UICollectionViewCell添加到UICollectionView内

1、注册CollectionViewCell,添加cell需要在这里实现。方法:- (void)registerClass:(Class)cellClass forCellWithReuseIdentifier:(NSString *)identifier

2、添加代理方法

//定义展示的UICollectionViewCell的个数

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section

//定义展示的Section的个数

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView

//每个UICollectionView展示的内容

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

设置UICollectionView中的属性

//定义每个UICollectionView 的大小(返回CGSize:宽度和高度)

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath

//定义每个UICollectionView 的间距(返回UIEdgeInsets:上、左、下、右)

-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section

//定义每个UICollectionView 纵向的间距

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section

//UICollectionView被选中时调用的方法

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

ViewController上添加UIview在UIView中画图怎么实现

1、在storyboard中拖入View-Represents a rectangular

2、在工程中新建file添加一个新的Cocoa Class,并选择Subclass of为UIView的子类,可以命名为MyView

3、回到storyboard中点击view在右边点击表识检查器(小方框的样子)[font=verdana, arial, helvetica, sans-serif ]将控制器的view属性(class)设为MyView

3、重写MyView的方法

4.在MyView.m下写

[font=verdana, arial, helvetica, sans-serif ]- (void)drawRect:(CGRect)rect方法就实现了画图。

IOS是一个闭源系统,从uiview跳转到uiviewcontroller需要有特殊的工具,跳转是在控制器之间发生的,应该是由一个控制器跳转到另一个控制器,跳转后就可以把当前的控制器默认的View添加到窗口上,而不是由UIView跳转到控制器,不要犯这样的错;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11606472.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存