swift时间swift 城市选择器器有没有延迟时间

Pages: 1/2
主题 : 学了段时间的Swift心好累,有个选择摆在面前Java和Swift你会选哪个?
级别: 新手上路
UID: 531500
可可豆: 381 CB
威望: 267 点
在线时间: 268(时)
发自: Web Page
来源于&&分类
学了段时间的Swift心好累,有个选择摆在面前Java和Swift你会选哪个?&&&
学了段时间的Swift心好累,有个选择摆在面前Java和Swift你会选哪个?。之前学oc,现在领导要深度学习网络加,让选择java或swift,大家给点意见呗。
级别: 新手上路
可可豆: 25 CB
威望: 15 点
在线时间: 78(时)
发自: Web Page
java现在学习,现在就能开发项目。但是swift要想成熟普及,估计还要两年时间,至少这两年swift无法取代obc
级别: 天使
发帖: 90659
可可豆: 922081 CB
威望: 921946 点
在线时间: 5508(时)
发自: Web Page
学习网络的话无疑用Objective-C哇~可以直接用kqueue等底层、高效的API实现大规模吞吐~
新浪围脖地址:.cn/CPU Dasher for OS X: /cn/app/cpu-dasher/id?mt=12
级别: 新手上路
可可豆: 14 CB
威望: 14 点
在线时间: 102(时)
发自: Web Page
回 2楼(zenny_chen) 的帖子
版主今天留意到你的很多关于OC和swift的言论,我感觉我有段时间也有点浮躁了,总觉得最新的是最好的,之前是做Android,又学OC,又想转swift,维护的项目是oc的,现在想沉淀下来,学学基础+底层的东西,算法,编译器之类的,现在水平就是写界面,调API的水平,能不能指条道....
级别: 天使
发帖: 90659
可可豆: 922081 CB
威望: 921946 点
在线时间: 5508(时)
发自: Web Page
回 3楼(那不是尤迪安) 的帖子
嗯嗯,非常不错~现在能沉下心来的年轻人不多了,不过所谓厚积薄发,有努力必有结果~
新浪围脖地址:.cn/CPU Dasher for OS X: /cn/app/cpu-dasher/id?mt=12
级别: 新手上路
UID: 548995
可可豆: 152 CB
威望: 114 点
在线时间: 79(时)
发自: Web Page
回 4楼(zenny_chen) 的帖子
初学者说一句 现在网上看到的源码 好多用swift写的 还在学oc...
级别: 骑士
UID: 471766
可可豆: 526 CB
威望: 484 点
在线时间: 402(时)
发自: Web Page
回 5楼(水丹青) 的帖子
但还有好多项目都是OC写的,还要继续维护.......................
级别: 新手上路
UID: 548995
可可豆: 152 CB
威望: 114 点
在线时间: 79(时)
发自: Web Page
回 6楼(kenzo8503) 的帖子
正在学习中, 一个ios的同学一听我要学这个 直接劝我转行...&&
级别: 骑士
UID: 471766
可可豆: 526 CB
威望: 484 点
在线时间: 402(时)
发自: Web Page
回 7楼(水丹青) 的帖子
喜欢就学罗,不要以赚钱为目的,毕竟赚钱的方法多着呢
级别: 新手上路
UID: 548995
可可豆: 152 CB
威望: 114 点
在线时间: 79(时)
发自: Web Page
回 8楼(kenzo8503) 的帖子
先能活着,再有生活 什么都不会的时候首先要找一个谋生的手段,
Pages: 1/2
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版Swift / Objective_C / Xcode实际开发中可能遇到的小功能小技巧总结&持续添加更新...&
一:Swift3.0为视图添加旋转动画,效果如下:
let anim = CABasicAnimation(keyPath: "transform.rotation")
anim.toValue =
anim.repeatCount = MAXFLOAT
anim.duration = 15
anim.isRemovedOnCompletion = false
testView(anim, forKey: nil)
二:解决项目中每次界面跳转隐藏TabBar的问题
override func pushViewController(_ viewController: UIViewController, animated: Bool) {
if childViewControllers.count & 0 {
viewController.hidesBottomBarWhenPushed = true
super.pushViewController(viewController, animated: animated)
三:Swift3.0中使用NSLayoutConstraint为控件添加约束
//设置通过代码添加Constraint,否则View还是会按照以往的autoresizingMask进行计算
centerButton.translatesAutoresizingMaskIntoConstraints = false
//依次添加X,Y, W,H
view.addConstraint(NSLayoutConstraint(item: centerButton, attribute: .centerX, relatedBy: .equal, toItem: self.view, attribute: .centerX, multiplier: 1.0, constant: 0))
view.addConstraint(NSLayoutConstraint(item: centerButton, attribute: .centerY, relatedBy: .equal, toItem: self.view, attribute: .centerY, multiplier: 1.0, constant: -60))
view.addConstraint(NSLayoutConstraint(item: centerButton, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 50))
view.addConstraint(NSLayoutConstraint(item: centerButton, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 50))
在view视图中,为参数1添加约束
设置 参数1(一般为视图) 的 参数2(坐标或宽高) 属性 参数3(大于等于小鱼) 参数4(参照视图) 的 参数5(坐标或宽高) 属性 乘以 参数6 加上 参数7
注意:单纯设置宽高的时候,参数4传入nil,参数5传入.notAnAttribute
view.addConstraint(NSLayoutConstraint(item: 参数1, attribute: 参数2, relatedBy: 参数3, toItem: 参数4, attribute: 参数5, multiplier: 参数6, constant: 参数7))
四:Swift3.0通过十六进制值设置UIColor
extension UIColor {
class func colorWithHex(hexValue: UInt32) -& UIColor {
let r = (hexValue & 0xff0000) && 16
let g = (hexValue & 0x00ff00) && 8
let b = hexValue & 0x0000ff
return UIColor(red: CGFloat(r) / 255.0, green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: 1.0)
//示例调用:
view.backGroundColor = UIColor.colorWithHex(hexValue: 0xff0000)
五:Swift3.0中&error的写法
var error: NSError?
context.canEvaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, error: &error)
六:动态设置TableView的滑动范围
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
self.tableView.contentSize = CGSizeMake(0,CGRectGetMaxY(self.labelExplain.frame) + 10);
七:clipstobounds与maskstobounds的区别
clipsToBounds(UIView)
是指视图上的子视图,如果超出父视图的部分就截取掉
masksToBounds(CALayer)
却是指视图的图层上的子图层,如果超出父图层的部分就截取掉
八:查看真机沙盒文件夹,查看真机崩溃日志
九:常用的路径位置
模拟器的位置:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
文档安装位置:
/Applications/Xcode.app/Contents/Developer/Documentation/DocSets
插件保存路径:
~/Library/ApplicationSupport/Developer/Shared/Xcode/Plug-ins
自定义代码段的保存路径:
~/Library/Developer/Xcode/UserData/CodeSnippets/
描述文件路径
~/Library/MobileDevice/Provisioning Profiles
十:富文本和HTML字符串互相转化
- (NSString *)attriToStrWithAttributeString:(NSAttributedString *)attributeString
NSDictionary *tempDic = @{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute:[NSNumber numberWithInt:NSUTF8StringEncoding]};
NSData *htmlData = [attributeString dataFromRange:NSMakeRange(0, attributeString.length) documentAttributes:tempDic error:nil];
return [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
- (NSAttributedString *)strToAttriWithString:(NSString *)htmlString
return [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType} documentAttributes:nil error:nil];
十一:Swift项目中引入Objective_C三方框架后手动桥接的方法
1&手动创建一个.h的文件,比如:Demo-Bridge.h
3&包含Objective_C头文件,例如:#import "UIView+WebCache.h"
十二:UITableView多行选择修改系统默认选择样式
在自定义的cell中重写layoutSubviews
- (void)layoutSubviews
[super layoutSubviews];
for (UIControl *control in self.subviews) {
if ([control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]) {
for(UIView *view in control.subviews) {
if([view isKindOfClass: [UIImageView class]]) {
UIImageView *img = (UIImageView *)
if(self.selected) {
img.image= [UIImage imageNamed:@"image1"];
img.image= [UIImage imageNamed:@"image2"];
十三:Xcode项目中一键替换项目中所有类中指定文字或代码
1&快捷键command + shift + F唤醒全局搜索并进入输入状态
2&切换Find为Replace(这里也可以采用正则进行查找搜索Regular Expression)
3&输入要搜索的内容和替换结果,然后点击Replace All即可
十四:NSUserDefaults判断应用程序是否是安装完首次次启动
if (![[NSUserDefaults standardUserDefaults] valueForKey:@"FirstStart"]) {
[[NSUserDefaults standardUserDefaults] setValue:@"firstStart" forKey:@"FirstStart"];
十五:Swift 设置在debug模式下打印日志,并且锁定代码位置()
func DebugLog&T&(messsage : T, file : String = #file, funcName : String = #function, lineNum : Int = #line) {
let fileName = (file as NSString).lastPathComponent
print("\(fileName):(\(lineNum))-\(messsage)")
DebugLog(messsage: "test")
ViewController.swift:(37)-test
十六:修改默认开发语言(Xcode默认开发语言是英语)
1&先添加英语之外的一种语言
2&Show in Finder工程文件 –& 显示包内容 –& 用文本打开project.pbxproj –& 搜索developmentRegion –& 将值改为zh-Hans
3&修改成功
我们知道系统的UITableView的section和row属性,就是定义在NSIndexPath的分类里的
UIView+Category.h
@property (nonatomic, strong) NSObject *propertyT
UIView+Category.m
#import &objc/runtime.h&
@implementation UIView (Category)
- (NSObject *)propertyTest {
return objc_getAssociatedObject(self, @selector(propertyTest));
- (void)setPropertyTest:(NSObject *)value {
objc_setAssociatedObject(self, @selector(propertyTest), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
此后,就可以正常访问了该属性了
十八:App迭代开发版本号的规则
0&首先我们的App第一版本首次上线, 比如以1.0.0为首次上线的版本号
1&上线后突然发现一个严重的Bug那我们就要修复更新版本, 此时我们的版本号为1.0.1, 所以说如果修复Bug或者优化功能, 我们只修改叠加第三位数字, 其他不变
2&如果有了新的需求, 在原来的基础上增加了一个新功能, 那么我们的版本号变为1.1.0, 需要清空第三位数字为0, 来叠加修改第二位数字
3&如果App需求功能大改, 更新量非常大, 那我们的版本号变为2.0.0, 需要叠加修改第一位数字, 清空其他数字为0
十九:Swift中懒加载
先说说OC中的懒加载,通常是写get方法,例如:
- (DataModel *)model
if (!_model) {
= [[DataModel alloc] init];
_model.title = @"标题";
swift中有专门的懒加载修饰符lazy,实现如下:
private lazy var model: DataModel = {
let model = DataModel()
model.title = "标题"
return model
二十:Swift中shouldAutorotate的重写
override open var shouldAutorotate: Bool {
return false / true
open override var shouldAutorotate: Bool {
return false / true
二十一:屏幕旋转的时候状态栏显示问题
如果是在视图View中,重写layoutSubviews;如果是在ViewController中重写viewWillLayoutSubviews,Swift代码如下:
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
UIApplication.shared.isStatusBarHidden = false
override func layoutSubviews() {
super.layoutSubviews()
UIApplication.shared.isStatusBarHidden = false
二十二:区分==,isEqual,isEqualToString
==: 比较的是内存地址
isEqual: 是 NSObject 的方法,首先都会判断指针是否相等 ,相等直接返回YES,不相等再判断是否是同类对象或非空,空或非同类对象直接返回NO,而后依次判断对象对应的属性是否相等,若均相等,返回YES
isEqualToString: 是NSString的方法,从继承关系角度来说是 isEqual的衍生方法,在都是字符串的前提下,判断字符串的内容是否相等,如果知道了两个对象都是字符串,isEqualToString比isEqual要快
二十三:修改GitHub项目显示语言
打开Terminal 进入到仓库文件夹
$:cd /Users/MacName/Desktop/Demo
创建一个`.gitattributes`的文件
$:touch .gitattributes
$:open .gitattributes
写入如下代码,比如设置语言为Swift
*.h linguist-language=swift
*.m linguist-language=swift
重新push项目到GitHub, 完成修改
二十四:Terminal命令查看系统隐藏文件
显示隐藏文件:
$:defaults write com.apple.finder AppleShowAllFiles -bool true
关闭显示隐藏文件:
defaults write com.apple.finder AppleShowAllFiles -bool false
***执行命令后需要打开强制退出界面(快捷键option+command+esc),重启Finder
二十五:Masonry布局后获取Frame值
需要立即更新子视图的布局后获取即可
[self layoutIfNeeded]
二十六:Xcode同时打开两个Simulator模拟器(做通信APP方便调试)
打开终端进到xcode路径下的Applications路径
$:cd /Applications/Xcode.app/Contents/Developer/Applications/
打开模拟器
$:open -n Simulator.app/
或者执行一个脚本也可以,创建文件xim.sh,键入以下代码
cd /Applications/Xcode.app/Contents/Developer/Applications/
open -n Simulator.app/
sudo sh sim.sh
会有如下提示:
点击OK后,换一个与当前模拟器设备不同的机型
然后在Xcode中选择刚选取的机型run包即可同时打开调试
实际上多开别的APP道理也是一样的,进到APP应用目录,open -n appName.app/即可
二十七:TableView检测滑动到底部和顶部(可用于聊天界面取历史消息)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
if (scrollView.contentOffset.y == scrollView.contentSize.height - scrollView.frame.size.height) {
NSLog(@"滑到底部加载更多");
if (scrollView.contentOffset.y == 0) {
NSLog(@"滑到顶部更新");
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
NSLog(@"点击状态栏调用");
二十八:区分__weak,__unsafe_unretained,__block
__weak 在释放指针后能够同时将指针置为nil
__unsafe_unretained 只留下一个无效的也指针
__block 打破循环 copy副本 内部修改
二十九:Xcode恢复默认字体
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?swift开发笔记11 - 使用UIAlertController在底部弹出日期选择框
swift开发笔记11 - 使用UIAlertController在底部弹出日期选择框
编辑:www.fx114.net
本篇文章主要介绍了"swift开发笔记11 - 使用UIAlertController在底部弹出日期选择框",主要涉及到swift开发笔记11 - 使用UIAlertController在底部弹出日期选择框方面的内容,对于swift开发笔记11 - 使用UIAlertController在底部弹出日期选择框感兴趣的同学可以参考一下。
点击日期按钮,弹出一个日期选择框在底部,选完日期后,修改日期按钮上的文字:
关于日期按钮的外观绘制详见上一节,点击按钮的响应事件为:
@IBAction func selectDate(sender: AnyObject) {
let alertController:UIAlertController=UIAlertController(title: &\n\n\n\n\n\n\n\n\n\n\n\n&, message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)
// 初始化 datePicker
let datePicker = UIDatePicker( )
//将日期选择器区域设置为中文,则选择器日期显示为中文
datePicker.locale = NSLocale(localeIdentifier: &zh_CN&)
// 设置样式,当前设为同时显示日期和时间
datePicker.datePickerMode = UIDatePickerMode.Date
// 设置默认时间
datePicker.date = NSDate()
// 响应事件(只要滚轮变化就会触发)
// datePicker.addTarget(self, action:Selector(&datePickerValueChange:&), forControlEvents: UIControlEvents.ValueChanged)
alertController.addAction(UIAlertAction(title: &确定&, style: UIAlertActionStyle.Default){
(alertAction)-&Void in
print(&date select: \(datePicker.date.description)&)
//获取上一节中自定义的按钮外观DateButton类,设置DateButton类属性thedate
let myDateButton=self.Datebutt as? DateButton
myDateButton?.thedate=datePicker.date
//强制刷新
myDateButton?.setNeedsDisplay()
alertController.addAction(UIAlertAction(title: &取消&, style: UIAlertActionStyle.Cancel,handler:nil))
alertController.view.addSubview(datePicker)
self.presentViewController(alertController, animated: true, completion: nil)
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:2014年6月 移动开发大版内专家分月排行榜第一2014年3月 移动开发大版内专家分月排行榜第一
2014年11月 移动开发大版内专家分月排行榜第二2014年4月 移动开发大版内专家分月排行榜第二2014年2月 移动开发大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(384f17ac64e8439a-ua98).
重新安装浏览器,或使用别的浏览器

我要回帖

更多关于 swift3.0 图片选择器 的文章

 

随机推荐