我有一个包含被调用对象的数组HistoryObject,它具有"日期","名称"等属性.
我像这样排序数组:
let sortedArray = HistoryArray.sort({ $0.date.compare($1.date) == NSComparisonResult.OrderedDescending})
Run Code Online (Sandbox Code Playgroud)
应该将日期从较新到最旧排序.例如:
等等..
但是当我的数组包含"2016年7月2日"时,排序的数组变为:
排序后"2016年7月2日"应该排在最前面,现在它位于底部?我该如何解决这个问题?
我做了一个水平UICollectionView,内部UICollectionViewCell我有scrollview和在scrollview内我有一个imageView.
我遇到的问题是,当我放大imageView时,scrollView会占用所有单元格大小,因此它不适合图像大小的高度和宽度.通过向上和向下滚动图像从scrollview中消失,我有不知道我的代码中出了什么问题.
我的ColectionViewCell代码:
class CollectionViewCell: UICollectionViewCell {
@IBOutlet var scrollView: UIScrollView!
@IBOutlet var ImageV: UIImageView!
}
Run Code Online (Sandbox Code Playgroud)
CollectionView代码:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CollectionViewCell
cell.scrollView.contentMode = UIViewContentMode.ScaleAspectFit
cell.scrollView.delegate = self
cell.ImageV.image = UIImage(named: array[indexPath.row])
cell.ImageV.contentMode = UIViewContentMode.ScaleAspectFit
cell.scrollView.minimumZoomScale = 1
cell.scrollView.maximumZoomScale = 4;
cell.scrollView.contentSize = cell.ImageV.frame.size
return cell
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
return CGSize(width: self.collectionView.frame.size.width …Run Code Online (Sandbox Code Playgroud) 我曾经在我的类NSObject构造函数中使用以下代码使用Objective-c:
- (id)init {
self = [super init] ;
return self;
}
Run Code Online (Sandbox Code Playgroud)
我如何在Swift中使用它?
我试着这样做:
override init() {
self = super.init()
return self;
}
Run Code Online (Sandbox Code Playgroud)
我有两个错误:
cannot assign value self is immutable
nil is the only return value permitted in this initializer
Run Code Online (Sandbox Code Playgroud) 我已经建立了一个从底部出现的视图,并在一段时间后隐藏它并且运行良好,但我想在UIView课堂上作为模态,我查看了互联网,但我无法理解如何做到这一点.
snake = UIView(frame: CGRect(x: 0 , y: self.view.frame.size.height-66, width: self.view.frame.size.width, height: 66))
snake.backgroundColor = UIColor(red: 50/255, green: 50/255, blue: 50/255, alpha: 1.0)
let label = UILabel(frame: CGRect(x: 12, y: 8, width: snake.frame.size.width-90, height: 50))
label.text = "Connection error please try again later!!"
label.textColor = UIColor.whiteColor()
label.numberOfLines = 0
label.font = UIFont.systemFontOfSize(14)
snake.addSubview(label)
let button = UIButton(frame: CGRect(x: snake.frame.size.width-87, y: 8, width: 86, height: 50))
button.setTitle("OK", forState: UIControlState.Normal)
button.setTitleColor(UIColor(red: 76/255, green: 175/255, blue: 80/255, alpha: 1.0), forState: UIControlState.Normal) …Run Code Online (Sandbox Code Playgroud) 我想跳过使用Xcode 8 beta并转换我的代码,但我在这里面临一些问题,我使用Google AnalyticsSDK发送事件,这就是我以前在Swift 2.2中使用它的方式:
let tracker = GAI.sharedInstance().defaultTracker
tracker?.set(kGAIScreenName, value: "ViewController")
let builder = GAIDictionaryBuilder.createScreenView()
tracker?.send(builder?.build() as [NSObject:AnyObject])
Run Code Online (Sandbox Code Playgroud)
但现在我想使用Swift 3,它告诉我:
无法将NSMutableDicationary类型的值转换为强制类型[NSObject:AnyObject].
我正在尝试SWRevealViewController在我的应用程序中使用滑动菜单库,但我需要用一个选项编辑库,我将解释如下.当使用addgestureRecognizer并打开滑动菜单时,保持从左到右,然后离开它,它会向右外侧反弹,然后关闭菜单.我只需要从库中禁用此选项,就像打开它的正常限制而不弹跳一样.
GitHub上的链接在这里:https: //github.com/John-Lluch/SWRevealViewController
我最近一直试图弄清楚如何在swift中初始化一个字典,就像我以前在Objective-c中做的那样:
NSMutableDictionary *loginDictionary = [[NSMutableDictionary alloc] initWithObjects:@[UsernameTextfield.text,PasswordTextfield.text] forKeys:@[@"username",@"password"];
Run Code Online (Sandbox Code Playgroud)
我试着在Swift中写它:
let userDictionary = NSMutableDictionary.init(object: [usernameTextField.text,passwordTextField.text], forKey: ["username","password"])
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误:
上下文类型AnyObject不能与数组文字一起使用.
我在objective-c中编写了一个类来为我提供一个名为helper的类的实例,它可以帮助我做很多不同的事情.
static Helper *objHelper = nil;
@implementation Helper
- (id)init {
self = [super init] ;
return self;
}
///- Return Helper Singleton Instance
+ (Helper *) getHelperInstance;
{
@synchronized (objHelper) {
if ( !objHelper || objHelper == NULL ) {
objHelper = [[Helper alloc] init];
}
return objHelper;
}
}
Run Code Online (Sandbox Code Playgroud)
我试过快速写它,但我不认为我做对了:
var objHelper : Helper?
override init() {
super.init()
}
func getHelperInstance() ->Helper{
synchronizd(objHelper == nil) {
if objHelper == nil {
objHelper = Helper()
}
}
return objHelper! …Run Code Online (Sandbox Code Playgroud)