ios开发

前端开发在IOS端遇到的一个诡异问题(Delegate 失效)

不问归期 提交于 2019-12-27 00:28:06
一、前言 最近同事问到一个问题,一个前端页面在IOS端真机测试下出现一个比较诡异的问题,如果没有遇到过估计也是一筹莫展。今天特此记录一下,或许能帮到后面遇到这个问题的朋友少绕一些弯路。这是关于JQuery 中的 delegate 和 on 给动态元素绑定事件触发不了的问题。文章以下只用 delegate 举例。 二、JQuery 的 delegate 作用。 首先我们来了解一下 Delegate 的作用。一句话带过:“给动态添加的元素绑定事件” 看图: 下面九个测试按钮是通过点击上面的 “添加测试按钮” 按钮添加的。这就是动态添加元素的概念。接下来需求为每个添加的测试按钮都有统一的处理事件。这边作为测试,当点击时输出 “你点击了+按钮名称” 信息。 按平时绑定事件的方式,.click() 或者 on('click') 等等这些方式。代码如下 $(function(){ //“添加测试按钮” 按钮点击事件,测试按钮 class 为 new-btn $("#add-btn").click(function(){ var test_btn_count = $('#btn-line button').size(); var new_btn_html = '<div class="new-btn btn">测试按钮' + (test_btn_count + 1) +'</div>'; $('

iOS开发之自定义UITableViewCell

房东的猫 提交于 2019-12-26 19:09:00
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 等高的Cell 一、storyboard方式 创建一个继承自UITableViewCell的子类 在storyboard中 - 往cell里面增加需要用到的子控件 - 设置cell的重用标识 - 设置cell的class为我刚才创建的那个Cell类型XXDealCell 3. 在控制器中 - 利用重用标识找到cell - 给cell传递模型数据 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.deals.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *ID = @"deal"; XXDealCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; //取出模型数据 cell.deal = self.deals[indexPath.row]; return cell; } 4

在ios下搭建混合开发环境

我是研究僧i 提交于 2019-12-23 20:36:39
在mac本上 安装x-code开发工具 第一步 x-code提供了五种模板 我们一般挑选最简单的single view 模板 只有一个空白页面的 点击下一步 第二步 填写项目名称(一般采用驼峰法命名)公司名称 公司ID值(一般采用域名倒过来写)然后会自动生成一个bundle值 这是结合 项目名称和公司域名 生成的这样可以保证上线的App唯一性 然后选择开发语言(objective-c / swift)和设备 数据库和单元测试选择默认 点击下一步 第三步 选择代码保存的位置 点击创建 显示如下四个目录 在右侧点击模拟器按钮 显示初始化app界面 因为是选择的单页面模板 出现的是空白页面 app还没设置自定义图标 显示出来的就是简单地 默认图标 MyApp是项目名 并不是app的名字,我们现在还未设置app名 ,在未设置app名之前默认采用项目名作为app名 修改自定义app名按如下操作 在设置中搜索name 找到项目名点击修改保存 再重新运行模拟器发现app名已改 注意:Application Name 应用程序名字 Project Name 项目名字 Package Name 安装包包名 版本编号关系 (三位数 大版本:小版本:bug修复次数) 来源: 51CTO 作者: 喝醉的熊 链接: https://blog.51cto.com/13550695/2460916

IOS开发之UIView总结

蹲街弑〆低调 提交于 2019-12-21 01:57:21
如果想调用某个类的某个方法可以写成这样,这个方法来自NSObject类 C代码 performSelector: performSelector:withObject: performSelector:withObject:withObject: 实际调用 C代码 [self performSelector:@selector(displayViews) withObject:nil afterDelay:1.0f]; 有三个方法分别是 C代码 //父视图 [self.view superview] //所有子视图 [self.view subviews] //自身的window self.view.window 循环一个视图下面所有视图的方法 C代码 NSArray *allSubviews(UIView *aView) { NSArray *results = [aView subviews]; for (UIView *eachView in [aView subviews]) { NSArray *riz = allSubviews(eachView); if (riz) { results = [results arrayByAddingObjectsFromArray:riz]; } } return results; }

webapp开发基础

大憨熊 提交于 2019-12-20 17:20:02
1、首先我们来看看webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用 <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" /> <meta content="yes" name="apple-mobile-web-app-capable" /> <meta content="black" name="apple-mobile-web-app-status-bar-style" /> <meta content="telephone=no" name="format-detection" /> 第一个meta标签表示:强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览; 第二个meta标签是iphone设备中的safari私有meta标签,它表示:允许全屏模式浏览; 第三个meta标签也是iphone的私有标签,它指定的iphone中safari顶端的状态条的样式; 第四个meta标签表示:告诉设备忽略将页面中的数字识别为电话号码; 2、HTML5标签的使用 在开始编写webapp时,哥建议前端工程师使用HTML5

iOS开发之用到的几种锁整理

*爱你&永不变心* 提交于 2019-12-19 16:36:09
1. iOS中的互斥锁 在编程中,引入对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问对象。 1.1 @synchronized (self) - (void)lock1 { @synchronized (self) { // 加锁操作 }} 1.2 NSLock - (void)lock2 { NSLock *xwlock = [[NSLock alloc] init]; XWLogBlock logBlock = ^ (NSArray *array) { [xwlock lock]; for (id obj in array) { NSLog(@"%@",obj); } [xwlock unlock]; }; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSArray *array = @[@1,@2,@3]; logBlock(array); });} 1.3 pthread pthread除了创建互斥锁,还可以创建递归锁、读写锁、once等锁 __block pthread_mutex_t mutex; pthread_mutex_init(&mutex, NULL);

[iOS开发]文档导读

别来无恙 提交于 2019-12-19 01:49:04
转自:http://ourcoders.com/thread/show/117/ 应该很多人看过了,发出来给没有看过的。。 有些文档都是很早的了,但还是涵盖了许多基础知识,值得一看 有些可以直接去苹果官网查看最新版本的,一些文档苹果已经更新到iOS7了 文档导读 这里我们就介绍自学iOS开发应该遵循或者说我们推荐的必读文档的阅读顺序。 阅读顺序: 《马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today)》 《Your First iOS App》 《Your Second iOS App: Storyboards》 《Your Third iOS App: iCloud》 《iOS Technology Overview》 《iOS Human Interface Guidelines》 《Learning Objective-C: A Primer》和《Programming with Objective-C》 《iOS App Programming Guide》 《View Programming Guide for iOS》和《View Controller Programming Guide for iOS》 《Table View Programming Guide for iOS》 首先应该看的是Getting

IOS开发官方文档随笔

孤人 提交于 2019-12-18 20:00:27
马上着手开发IOS应用程序 创建第一个单视图应用 ###main 方法 int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 创建了两个重要初始化组件 1 : UIApplication 类的实例 --》 应用程序对象 2 : AppDelegate 类的实例 --》 应用程序委托 委托中包含了 window单一属性,继承与 OSX 而来。 实现中的方法为默认,会在恰当的时机自动触发,无论删除与否。 创建IB文件,IB文件与Iphone实际大小不符解决方法: InterfaceBuilderDocument 中 UseSizeClasses 复选框 需求分析要点 *** 1:将概念转化为设计并实现该设计 *** *** 2:事件驱动编程 *** 关于面向对象 1、一切均为对象 2、类是对象的蓝图(类定义了对象的行为与属性) 人的行为有 睡觉、吃饭、写代码 人的属性有 身高、体重、写代码 创建特定类的实例来新建对象 途径就是为对象分配并初始化 3、 对象通过消息发送 在Objective-C术语中,一个对象通过调用另一个对象的方法来向对象发送消息。

ios开发 Socket通信

时光怂恿深爱的人放手 提交于 2019-12-18 13:20:21
ios开发 Socket通信 Socket描述了一个IP、端口对。它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发送的这些消息。所以,Socket一定包含了通信的双发,即客户端(Client)与服务端(server)。 1)服务端利用Socket监听端口; 2)客户端发起连接; 3)服务端返回信息,建立连接,开始通信; 4)客户端,服务端断开连接。 1套接字(socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。 应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了 区别不同的应用程序进程和连接 ,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应 用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。 2 建立socket连接 建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket,另一个运行于服务器端,称为ServerSocket。 套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。 服务器监听:服务器端套接字并不定位具体的客户端套接字

iOS开发里的Bundle是个啥玩意?!

倖福魔咒の 提交于 2019-12-17 10:55:08
*/ /*--> */ */ /*--> */ */ /*--> */ */ /*--> */ */ /*--> */ */ /*--> */ 初学iOS开发的同学,不管是自己写的,还是粘贴的代码,或多或少都写过下面的代码 [[NSBundle mainBundle] pathForResource: @" someFileName " ofType: @" yourFileExtension " ]; [YourViewController initWithNibName: " YourViewController " bundle:nil]; 可是你知道这里的bundle到底是个啥玩意呢?! Bundle简单地讲,就是一个内部结构按照标准规则组织的特殊目录 iOS的应用都是通过bundle进行封装的,对应的bundle类型是Application类型,平时我们通过XCode编译出来的Target(即我们开发的应用),其实就是一个Application类型bundle,即一个文件夹!但是Finder会把这个bundle当做一个文件显示给我们,其实是因为这个bundle自身也是一个package,而Mac系统会把所有的package当做一个文件来对待,显示给用户,从而防止用户误操作导致程序文件损坏或丢失。至于bundle和package有什么区别,就不在这里展开说明了