- 博客(331)
- 资源 (42)
- 收藏
- 关注
原创 完全解决UIButton的imageEdgeInsets
重要的事说三遍,我从网上找到的中文资料都多少有问题。下面以imageEdgeInsets为例,只考虑水平方向,垂直方向和水平方向原理相同, titleEdgeInsets和imageEdgeInsets也是一样的。UIEdgeInsets的定义:typedef struct UIEdgeInsets { CGFloat top, left, bottom,
2016-07-19 18:37:23 3899
原创 NavigationBar和UINavigationController一样是一个容器
NavigationBar和UINavigationController一样是一个容器,维护了一个UINavigationItem的堆栈。1、将一个独立的NavigationBar加在view上:UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 20, 320, 44)];
2015-09-29 16:42:08 746
原创 UIDeviceOrientation和UIInterfaceOrientation中left、right的含义
portrait:portrait原意是肖像画,因为肖像画要竖着挂,所以portrait就是纵向的意思。Landscape原意是风景画,风景画一般是横着挂,所以Landscape就是指手机横向。UIDeviceOrientationLandscapeLeft //Device oriented horizontally, home button on the right
2015-08-21 10:40:00 1883
原创 iOS中keychain存储结构的研究
keychain在ios中是保存在sqlite数据库中的。这个数据库文件的位置:真机:/private/var/Keychains/keychain-2.db虚拟机:/Users/USER-HOME/Library/Developer/CoreSimulator/Devices/26DCA62C-B516-4DEA-A601-5C2D0EA07710/data/Library/
2015-05-29 11:23:09 2906 1
原创 对TCP/IP,socket,HTTP的理解
今天有同事问我TCP/IP,socket,HTTP三者的关系,说半天同事也没理清三者的关系。我想了下,用下面的比喻简单的类比一下吧。可以把TCP/IP理解为公路和交规,socket对应物流公司,http对应发货人和收货人。汽车要送货,就必须在公路上走,必须得守交规。socket只关心把东西从一个地方送到另一个地方。对送的是什么并不感兴趣。http就是在收到货物后
2015-05-08 09:47:13 1308
原创 block里使用self引起循环引用的研究
方法里定义的block直接调用self,不会产生循环引用:下面的这个block不会引起循环引用,因为block运行时在栈里 。但是block一直运行的话,self是不能回收的,必须在block执行结束后,self才可以被回收。-(void)btnAction{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIO
2015-03-02 17:17:58 1159
原创 用NSURLSession的delegate实现接收数据
注意,不需要为task设定delegate。 在设定session的delegate时,task的delegate也一并设定为同一个了。NSMutableData *mutableData;-(void)btnAction{ NSURLSession* session = [NSURLSession sess
2015-02-15 09:48:25 3032
原创 在iOS7中修改状态栏字体的颜色
状态栏的字体为黑色:UIStatusBarStyleDefault 状态栏的字体为白色:UIStatusBarStyleLightContent一、在info.plist中,将View controller-based status bar appearance设为NO状态栏字体的颜色只由下面的属性设定,默认为白色:// default is UIStatu
2014-08-08 17:01:15 5136
原创 翻译UINavigationBar的translucent属性在其头文件定义处的注释
先吐槽一下,apple的注释写得挺绕的,一大堆的后置定语。translucentiOS7下具有新的行为。你可以通过设置这个属性为NO,强制背景为不透明。如果导航栏的背景图为自定义,其默认值将从背景图的alpha值推断而来,背景图只要有一个像素的alpha值如果设置translucent为YES,而自定义背景图不透明。则会给
2014-08-08 10:29:07 3922
原创 iPhone屏幕旋转锁定时判断设备的方向
作一个拍照的应用,有一个需求是只能横屏拍摄。结果发现在用户将屏幕旋转锁定后,用常规方法根本取不到设备的方法。最后找到一个现成的:https://github.com/tastyone/MotionOrientation/完美的解决了这个方案,向大家推荐下。
2014-03-19 14:43:35 3655 1
原创 iOS倒计时的动画效果
-(void)countDown:(int)count{ if(count 0){ //倒计时已到,作需要作的事吧。 return; } UILabel* lblCountDown = [[UILabelalloc] initWithFrame:CGRectMake(260,
2014-03-05 08:02:34 4228
原创 Objective-c在宏里拼接字符串
//正式服务器#define API_DOMAIN @"www.online.com"//测试服务器//#define DOMAINXX @"192.168.0.10"#define API_SYSTEM @"http://"API_DOMAIN@"/system/"#define API_USER @"http://"API_DOMAIN@"/user/"
2014-02-27 14:58:58 6615
原创 SDWebImage的源代码无法运行的问题
从github上下的SDWebImage源文件编译不通过,最后google到了解决方案:https://github.com/rs/SDWebImage/issues/447原因就是libwebp是作为一个git的submodules存在的。点击github网站上的download zip按钮下载的zip文件中没有libwebp的源文件。解决办法如下:下面都以Users
2014-02-25 15:42:02 3983
原创 iOS7下隐藏status bar的详细研究
info.plist文件中,View controller-based status bar appearance项设为YES,则View controller对status bar的设置优先级高于application的设置。为NO则以application的设置为准,view controller的prefersStatusBarHidden方法无效,是根本不会被调用的。
2014-01-17 14:31:40 12228
原创 UIViewControllerBasedStatusBarAppearance作用的实际测试
在作iOS7的适配时,很多文章都会提到UIViewControllerBasedStatusBarAppearance。便一直不是太明白其实际作用。在网上也没有查出明确的说明,苹果的官方文档也是说的不太清楚。在实际测试后发现UIViewControllerBasedStatusBarAppearance的实际作用如下:这个属性只影响如何设置status bar上字体的颜色是黑色还是白色,对
2014-01-02 14:04:47 8903 1
原创 UIView的contentMode中scale和aspect的字面意思
scale的意思是:缩放,在contentMode中出现的话,就是要改变图形的大小了。aspect的意思是纵横的比例,在contentMode中的意思是保持图形的纵横比,保持图片不变形。scale aspect fill:在保持纵横比(aspect)的情况下,缩放图片(scale),使图片充满容器(fill)。scale aspect fit:在保持纵横比(aspect)的情况下,
2013-12-18 10:14:21 11169
原创 iOS中让省略号垂直居中
在显示等待框时,一般要求在提示信息后面加个省略号,但中文输入法下输入的省略号是在底部对齐,但中文的习惯是省略号垂直居中对齐,最后找到下面这个方法来显示垂直居中的省略号:中文和英文输入法下一样:option + shift + 9。输出的是一个垂直居中的点,多输入就个这个点就可以模拟垂直居中的省略号了,效果如下:······
2013-08-07 15:03:02 2428 1
原创 Xcode使用dyci实现应用运行时修改代码
在iPhone开发时,用xib的话,源代码管理、日后修改都是问题。所以团队开发时,一般不建议用xib。这就产生一个问题,界面用代码实现后,界面调整时,改完代码后,必须重新运行程序才能看到修该的结果。dyci这个工具可以解决这个问题。 dyci是个动态编译的工具,可以把修改过的代码注入到正在运行的应用中。这样,不需重新运行应用,就可以看到修改的结果了。dyci的网址:
2013-06-09 10:38:28 3848
原创 用google搜索github的程序代码
但是google的filetype参数不支持java、js、dart等。最后的解决方案就是在google中搜索时,关键字加上要搜索的开发语言每页都会有的关键字,比如搜索flutter的代码,就加上关键字import、flutter、dart。在github的搜索中搜索代码时,最多只给五页内容。要多看搜索的内容就只能用google了。"搜索关键字 import flutter dart site:github.com"。
2023-07-11 22:48:35 614
原创 终于搞明白github advanced search的用法了
它并不是先按条件过滤github中的项目库后,再在过滤出来的项目库的代码中按查询关键字搜索的。
2023-01-28 14:30:25 1302
原创 dart用puppeteer从web页抓取数据前需先调用page.waitForSelector
在调用page.evaluate执行js从页面取数据之前,需要先page.waitForSelector,waitForSelector的参数貌似和page.evaluate中要抓取的内容没关系也可以,关键是调用page.waitForSelector等待web页加载完成后再调用page.evaluate,否则有可能取不到数据。
2023-01-22 17:10:02 909
原创 Sourcetree中重置移动文件位置的修改必须先暂存
在移动文件后,移动的文件还没有放入暂存区,此时执行重置操作时会报错:移动的文件名 did not match any file(s) known to git。需要将修改暂存后,再执行重置操作才可以。
2023-01-18 16:44:16 332
原创 惠普LaserJet Pro MFP m132nw连接wifi
惠普LaserJet Pro MFP m132nw连接wifi要在打印机上的控制面板选:无线菜单/无线保护设置(WPS)/按钮选项。
2023-01-03 15:06:44 8530
原创 是否可以用不同版本的Flutter版本打包在iOS上实现马甲包
突然有一个想法,在Flutter大版本不变的前提下,在打包时用Flutter的不同版本来打包,不知道可不可以骗过苹果应用商店对马甲包的审查。有打马甲包需求的朋友有兴趣可以试一试这个思路,或者尝试过的,麻烦在文章的回复里面留言。
2022-12-09 18:54:14 916 2
原创 Flutter在pubspec中添加的资源为目录时,子目录只包含根目录同名的文件
子目录下只包含与主目录中的文件同名的文件。如果想要添加子文件夹中的所有文件,需要为每个目录创建一个条目。
2022-12-06 16:53:07 593
原创 在github上查询某个Flutter库的使用示例
在Flutter开发时,有时想看一下某个库的使用示例,或者是想看一下这个库使用的人多不多。于是想到可以通过查询pubspec.yaml中这个库的名字来实现上面的目的。同样的iOS也可以通过查Podfile文件来实现。
2022-10-23 09:14:39 763
原创 Flutter命令行工程中在macOS下取Download目录
命令行工程中不能使用path_provider,path_provider需要Flutter包的支持。用"~/Downloads",经测试也不行,如下代码执行失败。var response = await dio.download(href,savePath);最后的解决方案是用macOS的命令id -un 先取得用户名,再拼出Downloads的绝对路径来。...
2022-06-18 15:55:45 805
原创 AMapFlutterLocation的回调方法转为异步操作
用Completer实现class LocationInfo{ double longitude; double latitude; String address; LocationInfo({this.latitude, this.longitude,this.address});}class LocationUtil{ ///界面初始化完成 static Future<LocationInfo> fetchLocation() async { .
2022-04-25 14:45:41 408 4
原创 Flutter amap_flutter_map 缩放地图使两点都在地图上显示
CameraUpdate update = CameraUpdate.newLatLngBounds(bound, 10);_mapController?.moveCamera(update);上面这个不好用,实际测试,并不会缩放地图。最后只能是先算出两点的中心点后,以中心点为基点,计算两点间的横向距离,再由距离大体估算出zoom的值来:_configWorkDayMap() async { //116 LatLng latLng1 = LatLng(39.91,116.6.
2022-04-25 11:28:20 912 1
原创 高德Flutter官方组件amap_flutter_map在地图上画圆
经过研究,amap_flutter_map的源代码并不多,并不直接支持在地图上画圆,经过研究,最后通过Polygon实现了画圆的功能,但效果只能说一般般吧。下面是实现代码: void _add() { final Polygon polygon = Polygon( strokeColor: Colors.blue.withAlpha(8), fillColor: Colors.blue.withAlpha(2), strokeWidth: 1,
2022-04-22 10:09:12 1011
原创 amap_flutter_map 初始化地图后将当前位置设为地图的中心点
高德地图的Flutter官方插件:amap_flutter_map 3.0,功能不是非常全,我们常用的一个场景,地图在初始化后,将当前位置设为地图显示的中心,在原生的地图SDK上只需要设置地图的一个属性就可以,但是amap_flutter_map并不支持,需要自己实现。 AMapWidget有一个属性initialCameraPosition,是用来指定地图的初始中心位置的。从源代码可以看出,如果initialCameraPosition没有指定的话,默认值是天安门。如果使用定...
2022-04-18 16:33:11 3706
原创 Flutter开发的plugin中引用的url_launcher升级后,plugin的podspec文件的修改
自己开发的plugin中引用了url_launcher,在plugin升级到null safe后,需要把plugin中引用的url_launcher从5.7.0升级到6.0.20。在升级后,Flutter 工程在run时,在pod install时报插件依赖的url_launcher找不到。先说最后的解决方案:在插件的podspec文件中:flutter_plugin/ios/amap_map_fluttify.podspec把原来的s.dependency 'url_launcher'
2022-04-14 15:21:49 2727 1
原创 Xcode13.3 13.2以及Flutter新版本的稳定性问题
最近升级Flutter工程到null safe。被各种环境问题折磨。发现Xcode和Flutter的新版本都有很多兼容性问题。Flutter 2.10及以后版本,在arm版mac的iPhone虚拟机上粘贴功能有问题。经查说是只在虚拟机有问题,在真机没问题。结果想打包后在真机安装测试时,发现Xcode打包应用报错。需要升级pod包。打development包时,Xcode的auto签名方式各种问题,然后准备在钥匙串中手动制作开发证书时,又是一堆问题。developer.apple.com网站上也是一堆
2022-04-08 15:31:33 2711
原创 Xcode升到13.3以后打包应用报 Segmentation fault: 11 (in target ‘DKImagePickerController‘ from project ‘Pods‘)
Flutter工程在升级Xcode到13.3后打包应用报错如下:Segmentation fault: 11 (in target 'DKImagePickerController' from project 'Pods')但是运行不出错。最终解决:在ios目录下,运行pod update。pod install不行。参考https://github.com/flutter/flutter/issues/100142直接原因:pod库DKImagePicker
2022-04-08 15:15:20 3478
原创 使Flutter工程支持null safe
支持null safe的flutter最低版本是2.0.0,对应的dart sdk是2.12.0。1、要使工程支持null safe,电脑上必须安装Flutter 2.0.0 及以上的版本。2、要将pubspec.yaml中的sdk大于2.12.0此处设置的是dart的版本,如下:environment:sdk: ">=2.12.0 <3.0.0"3、如果电脑上的Flutter是 2.0.0的,但是pubspec中的sdk设置的值低于2.12.0,如下:
2022-03-31 18:06:02 3228
原创 Flutter格式化电话号码
工作上需求从手机的通讯录导入用户,取得用户的姓名和电话号码。在pub上搜到star高的有contacts_service和flutter_contacts。但是从这两个库中取到的电话号码格式如下:1 (391) 012-6666。应该这两个库是外国人写的,没有考虑到中国的问题。最后找到了phone_numbers_parser这个库,可以把电话号码格式化为符合中国人习惯。代码如下。final cnPhone = PhoneNumber.fromNational('cn', '1 (391)
2022-03-30 17:08:53 2346
原创 Flutter iOS打包时报错 Unexpected type InvalidType InvalidType
在运行应用时不报错,但是iOS打报时报错:Unexpected type InvalidType InvalidType(<invalid>)#0 TypesBuilder.fromStaticType (package:vm/transformations/type_flow/types.dart:103:7)#1 SummaryCollector._staticType (package:vm/transformations/type_flow/summary_collector
2022-03-22 23:32:27 2160
CATransform3D中m34值的测试
2013-07-18
table滚动则全屏显示,点击cell则从中间分开进入详细界面
2013-07-17
基于UITabBar的系统功能实现切换时滑动提示的tab bar。
2013-06-27
翻页效果的navigation controller过场动画
2013-05-27
取消同步的ASIHTTPRequest请求
2013-04-01
地图上画圈并筛选
2013-03-18
仿淘宝商城table滚动全屏效果
2012-09-07
两个滑块的范围选择UISlider
2012-08-13
由UISlide实现自定义的UISwitch
2012-08-10
iPh侬one虚拟机上实时修改应用中控件的位置 DCInstro
2012-06-06
摘抄京东方的左侧菜单
2009-10-16
离线浏览CSDN Blog的iPhone应用
2014-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人