iOS UICollectionView与UITableView共同点:都需要接受两个协议 并执行代理方法不同点:初始化方法不同 UITableVIew可以用alloc 方法初始化 而UICollectionView必须用下面方法初始化。self.collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:flowLayout];[self.view addSubview:self.collectionView];[self.collectionView setDataSource:self];
dataSource = self;NSString * title = [[dataSource objectAtIndex:indexPath.-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath.-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section.
iOS9 collectionView新特性。_collectionView.dataSource = self;//此处给其增加长按手势,用此手势触发cell移动效果 UILongPressGestureRecognizer *longGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handlelongGesture:)]; [_collectionView addGestureRecognizer:longGesture]; } return _collectionView;}
IOS 多视图UIView左右来回滑动切换效果!UIView *dwView;dwView =[[ UIView alloc ] initWithFrame : CGRectMake ( 0 , 0 , 320 , 460 )];else if ( dwNum !dwNum --;[ UIView beginAnimations : nil context : nil ];[ UIView setAnimationDuration : 1.0 ];[ UIView setAnimationDelegate : self ];[ UIView setAnimationWillStartSelector : @selector (begin)];[ UIView setAnimationDidStopSelector : @selector (stopAni)];
本章通过先总体介绍UICollectionView及其常用方法,再结合一个实例,了解如何使用UICollectionView。) [self.collectionView registerClass:[CollectionCell class] forCellWithReuseIdentifier:@"CollectionCell"];点击某项后跳转事件与UITableView类似,实现代理方法 -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath.
#import #import "Startupscreen.h"@interface AppDelegate : UIResponder { Startupscreen *startupscreen;startupscreen = [[Startupscreen alloc] initWithNibName:@"Startupscreen" bundle:nil];[self.window addSubview:startupscreen.view];#import "Startupscreen.h"#import "ViewController.h"@interface Startupscreen ()@end@implementation Startupscreen@synthesize timer;
由pushViewController说起可能出线的各种死法 做苹果开发或者果粉对导航条这个东西应该都不陌生,这咚咚在小小的屏幕上通过一个简单的View的队列管理来做到手机界面的有条理管理,但是开发过程程序员可能碰到各种死法,下面分享一二。1:self.navigationController为nil,空指针执行pushViewController直接跳过,接着sampleViewController会释放掉,所以界面会无反应。2、self.navigationController为nil,界面挂了。
iOS自定义的emoji表情键盘iOS自定义的表情键盘 一、关于emoji表情。emoji表情是unicode码中为表情符号设计的一组编码,当然,还有独立于unicode的另一套编码SBUnicode,在OS系统中,这两种编码都有很好的支持。iOS中可用的表情unicode范围是:0xE001~0xE05A,0xE101~0xE15A,0xE201~0xE253,0xE401~0xE44C,0xE501~0xE537。int emojiRangeArray[10] = {0xE001,0xE05A,0xE101,0xE15A,0xE201,0xE253,0xE401,0xE44C,0xE501,0xE537};
ios 6 为 IOS 引入了全新的控制器,用来显示数据集合,集合视图控制器是与表视图控制器类似的全新UI框架。。打开你的故事板并在集合视图控制器中选择唯一的集合视图单元。- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {MKPhotoCell *cell = (MKPhotoCell*) [collectionView dequeueReusableCellWithReuseIdentifier:@"MKPhotoCell"
返回对应于indexPath的位置的追加视图的布局属性,如果没有追加视图可不重载。-(void)prepareLayout{ //和init相似,必须call super的prepareLayout以保证初始化正确 [super prepareLayout]; CGSize size = self.collectionView.frame.size; _cellCount = [[self collectionView] numberOfItemsInSection:0]; _center = CGPointMake(size.width / 2.0, size.height / 2.0); _radius = MIN(size.width, size.height) / 2.5;}
【iOS系列】【iOS系列】- iOS吸附效果的实现 之 UICollectionView的使用全解。参数介绍proposedContentOffset:原本UICollectionView停止滚动那一刻的位置;UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:rect collectionViewLayout:viscosityLayout];UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:rect collectionViewLayout:flowLayout];
} - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];- (void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath;
iOS 获取当前正在显示的ViewController.我们在非视图类中想要随时展示一个view时,需要将被展示的view加到当前view的子视图,或用当前view presentViewController,或pushViewContrller,这些操作都需要获取当前正在显示的ViewController。版权声明:本文为博主原创文章,未经博主允许不得转载。
本地视图.navigationItem.leftBarButtonItem //左边栏项目本地视图.navigationItem.rightBarButtonItem //右边栏项目本地视图.navigationItem.backBarButtonItem //后退栏项目本地视图.navigationItem.hidesBackButton//隐藏后退按钮(YES or NO)在视图的viewWillAppear:方法中添加:(弹出当前视图控制器)– 弹出并向左显示前一个视图。(弹出到指定视图控制器)– 回到指定视图控制器, 也就是不只弹出一个.
// Override point for customization after application launch. self.viewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];self.window.rootViewController = self.viewController;// 把根控制视图设置成fTestViewController self.window.rootViewController = self.fTestViewController; [self.window makeKeyAndVisible]; return YES; }
UIViewController 可以添加过渡动画了UIViewController 可以添加过渡动画了。6. if ((currentViewController==firstViewController&&[sender tag]==1)||(currentViewController==secondViewController&&[sender tag]==2) ||(currentViewController==thirdViewController&&[sender tag]==3) ) { 7. return;
1 - (IBAction)btnClick:(id)sender {2 3 // 实例化视图4 TwoViewController *controller = [[TwoViewController alloc] initWithNibName:@"TwoViewController" bundle:nil];5 6 // 跳转视图7 [self presentModalViewController:controller animated:YES];8 }在Storyboard中,segue有几种不同的类型,在iphone和ipad的开发中,segue的类型是不同的。(1.)Initial Scene:初始化Storyboard时显示此视图。
创建一个GoodsInfoModel 类,继承于NSObject 类,用于做数据模型 创建一个MyCustomCell 类 ,继承于UITableViewCell,自定义单元格类 在MyCustomCell.m 类中,实现单元格的布局 在 ViewController.m 创建表格视图,并且创建表格尾部视图 MyCustomCell 类中定义协议,实现代理,完成加、减的运算。/* * 创建表格尾部视图 * * @return 返回一个UIView 对象视图,作为表格尾部视图 /2.8 实现单元格加、减按钮代理。* 全选按钮事件。
浅谈MVVM框架MVC简介 MVC是Model-View-Controler的简称。MVVM简介 MVC框架一目了然,也非常好理解,随着App应用功能的强大Controller的负担越来越大因此在MVC的基础上繁衍出了MVVM框架。现实开发中是找到一个合适的框架时使用,并不局限于哪一种,下面举一个简单的例子,在ViewModel里面处理业务逻辑,旨在讲解MVVM框架,不用与工作,当我们处理复杂的业务逻辑的时候可以优先选择MVVM框架。self = [superinit];
iOS面试题搜集(持续更新)7、对象是什么时候被release的?17、内存管理 Autorelease、retain、copy、assign的set方法和含义?21、ObjC中,与alloc语义相反的方法是dealloc还是release?与retain语义相反的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?24、以下每行代码执行后,person对象的retain count分别是多少。[person retain];25、autorelease的对象是在什么时候被release的?
iOS学习之Table View的简单使用。在iPhone和其他iOS的很多程序中都会看到Table View的出现,除了一般的表格资料展示之外,设置的属性资料往往也用到Table View,Table View主要分为以下两种:2、Table View放上控件打开ViewController.xib文件,往ViewController.xib界面上拖拽一个Table View控件到现有的View上,对齐。-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath.
ViewController->强引用了属性vc->强引用了callback->强引用了ViewController的属性button.不声明vc属性或者将vc属性声明为weak引用的类型,在callback回调处,将self.button改成weakSelf.button,也就是让callback这个block对viewcontroller改成弱引用。self.aView = [[HYBAView alloc] initWithBlock:^(id model) {[self.view addSubview:self.aView];vc->aView->block->vc(self)vc->aView->block->vc.currentModel.
iOS 3D Touch (UIApplicationShortcutItem、UIViewControllerPreviewing、UIPreviewAction)} - (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler { // react to shortcut item selections NSLog(@"A shortcut item was pressed. It was %@.", shortcutItem.localizedTitle);
@property (nonatomic,strong) XMLElement *currentElementPointer;- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict.- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName.
1.tableView是一个用户可以滚动的多行单列列表,在表视图中,每一行都是一个UITableViewCell对象,表视图有两种风格可选。// 设置cell上文本内容 cell.textLabel.text = [_textLabel_MArray objectAtIndex:indexPath.row];// 设置每一行的图片 cell.imageView.image = [_images_MArray objectAtIndex:indexPath.row];}table.subtitle_MArray = [[NSMutableArray alloc] initWithArray:subtitle];
iOS-UICollectionView基本使用UICollectionView.UICollectionView必须设置数据源和代理,如:- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath.- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPathUICollectionViewFlowLayout.
row%10 ==3 || indexPath.row/10*SCREEN_WIDTH*4/3+SCREEN_WIDTH*7/6);- (void)collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath;- (void)collectionView:(UICollectionView *)collectionView didUnhighlightItemAtIndexPath:(NSIndexPath *)indexPath;- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath;
@end@implementation ViewController- (CALayer *)faceWithTransform:(CATransform3D)transform{ //create cube face layer CALayer *face = [CALayer layer];}- (CALayer *)cubeWithTransform:(CATransform3D)transform{ //create cube layer CATransformLayer *cube = [CATransformLayer layer];}- (void)setUp{ //configure replicator CAReplicatorLayer *layer = (CAReplicatorLayer *)self.layer;
iOS 之美:透过Delegate ,看UIView与UIViewController之间的关系。不过,按照Cocoa 的习惯, 在UIView 中所声明的这个protocol,一般都是命名为delegate,或以delegate 结尾。= nil ) 这行语句的意思是,如果delegate对象不为空,则调用相应的方法,但是这个对象的方法 (method_a)在哪里实现呢? 按照Delegate 的设计模式, MyUIViewDelegate所定义的方法,应由MyUIViewController 来实现。myView.delegate = self;