Wednesday, July 1, 2015

Detect idle time and do something when timer fires (Swift)

func resetIdleTimer()
    {

        if (idleTimer == nil)
        {
           idleTimer = NSTimer.scheduledTimerWithTimeInterval(kMaxIdleTimeSeconds, target: self, selector: "idleTimerExceeded:", userInfo: nil, repeats: false)
        }
        else
        {
           if (fabs(idleTimer.fireDate.timeIntervalSinceNow) < kMaxIdleTimeSeconds-1.0)
           {
               idleTimer.fireDate = NSDate(timeIntervalSinceNow: kMaxIdleTimeSeconds)
            
           }
        }
    }
    
    func idleTimerExceeded(sender: AnyObject)
    {
        idleTimer = nil

//do something when timer fires
    }

Thursday, June 25, 2015

hide/show with animation in Swift

For hiding the dock like view and show again

 func hide(sender: AnyObject)
 {
     let frame = hideshowView?.frame
     let height = frame?.size.height
     let offsetY = height!
        
     //hide after 10 seconds delay
     if frame != nil {
     UIView.animateWithDuration(0.5, delay: 10.0, options: UIViewAnimationOptions.CurveEaseIn, animations: { [weak self] () -> Void in
                
                if let weakSelf = self
                {
                    weakSelf.segmentedControl?.frame = CGRectOffset(frame!, 0, offsetY)
                    weakSelf.openBottomBarButton.hidden = false
                }
            }) { (Bool v) -> Void in
            }
      }
 }
    
 func show(sender: AnyObject)
 {
        let frame =  hideshowView?.frame
        let height = frame?.size.height
        let offsetY = -height!
        
        //show without delay
        UIView.animateWithDuration(0.5)
        {
            hideshowView?.frame = CGRectOffset(frame!, 0, offsetY)
        
        }
}

Friday, June 19, 2015

Setting ImageView corner radius iOS, Swift

To get rounded image view

imageView.layer.cornerRadius = imageView.frame.size.width / 2
imageView.layer.masksToBounds = true



Check whether array contains element in Swift

extension Array {
    func contains<T where T : Equatable>(obj: T) -> Bool {
        return self.filter({$0 as? T == obj}).count > 0
    }
}
array.contains(element)
Also can use Dollar Framework: http://www.dollarswift.org

Thursday, June 11, 2015

CocoaPods dependency errors

Analyzing dependencies
[!] Unable to satisfy the following requirements:

- `AFNetworking (= 1.3.4)` required by `Podfile.lock`
- `AFNetworking (~> 1.3.0)` required by `RestKit/Network (0.20.3)`

- `AFNetworking (~> 2.5)` required by `ABMSoundCloudAPI (0.1.0)`

References:
http://blog.cocoapods.org/CocoaPods-0.35/

Solution:

  1. Fork the repository,
  2. Make the changes or update dependencies
  3. Install from the forked repository