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。版权声明:本文为博主原创文章,未经博主允许不得转载。
Unity3D 研究院之IOS高级界面发送消息与Unity3D消息的接收(九) ...Unity3D 研究院之IOS高级界面发送消息与Unity3D消息的接收(九)讨论IOS的高级界面与Unity3D游戏引擎的交互,这个在开发中是非常重要的,Unity3D 毕竟是一个面向多平台的一个游戏引擎,它不可能全部为IOS 考虑的面面俱到,引擎中也不存在针对IOS的高级界面的控件的使用。
清单14.2显示了在低优先级的后台队列而不是主线程使用GCD加载图片的-collectionView:cellForItemAtIndexPath:方法,然后当需要加载图片到视图的时候切换到主线程,因为在后台线程访问视图会有安全隐患。图片加载性能取决于加载大图的时间和解压小图时间的权衡。如结果所示,相对于不友好的PNG图片,相同像素的JPEG图片总是比PNG加载更快,除非一些非常小的图片、但对于友好的PNG图片,一些中大尺寸的图效果还是很好的。
本地视图.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主流框架纯代码搭建IOS主流框架。[self setUpAllChildViewController:oneVc image:[UIImage imageNamed:@"tab_home_icon"] title:@"首页"];//4.2创建storyBoard中箭头指向的控制器(初始控制器)-(void)setUpAllChildViewController:(UIViewController *)viewController image:(UIImage *)image title:(NSString *)title{//如果控制器A的View成为控制器B的View的子控件,那么A控制器成为B控制器的子控制器。
iOS多线程编程之NSThread的使用1、简介:1.1 iOS有三种多线程编程的技术,分别是:缺点:需要自己管理线程的生命周期,线程同步。第一种方式会直接创建线程并且开始运行线程,第二种方式是先创建线程对象,然后再运行线程操作,在运行线程操作前可以设置线程的优先级等线程信息2.3 PS:不显式创建线程的方法:我们演示一个经典的卖票的例子来讲NSThread的线程同步:发送信号的方式,在一个线程唤醒另外一个线程的等待。
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];