Search This Blog

Hiển thị các bài đăng có nhãn IOS. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn IOS. Hiển thị tất cả bài đăng

Thứ Sáu, 24 tháng 8, 2018

Làm mới lại khi chọn 1 dòng trong table view in ios


func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        

        tableView.deselectRow(at: indexPath, animated: true)
        tableView.reloadData()
    }

Show thông báo ra màn hình in ios


private func showMessage() {
        
        let alert = UIAlertController(title: nil, message: viewModel.message, preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: localized("ok"), style: .default, handler: nil))
        present(alert, animated: true)
    }

Thứ Ba, 16 tháng 1, 2018

Cập nhật dữ liệu Realm in IOS

let workouts = realm.objects(WorkoutsCount.self).filter("date = %@", removeTodaysItem)

let realm = try! Realm()
if let workout = workouts.first {
    try! realm.write {
        workout.date = today
        workout.count = plusOne
    }
}

Thứ Tư, 10 tháng 1, 2018

Xoa1 1 item thu n trong NSMutableArray in IOS


arrPin.removeObject(at: 0)

Hàm if cho mảng in IOS

if [1,2,3].contains( model.m_postion! ) {
                                            

}

Thứ Hai, 1 tháng 1, 2018

Chèn thêm khung delete bên phải cell TableView in IOS

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        
      
            return true
        
        
    }
    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        
        if editingStyle == .delete {
            if((self.arrNews.count) > 0 ){
                let mdPost = arrNews[indexPath.row] as! ModelNews
                DataManager.deleteToBookmarkOnlyData(md: DataManager.getByIdBookmarkOnlyData(id_news: mdPost.m_object_id!))
                self.reloadData()
            }
        }

    }

Thứ Sáu, 29 tháng 12, 2017

Hàm đảo mảng ngẫu nhiên in IOS

func newShuffledArray(array:NSArray) -> NSArray {
    var mutableArray = array.mutableCopy() as! NSMutableArray
    var count = mutableArray.count
    if count>1 {
        for var i=count-1;i>0;--i{
            mutableArray.exchangeObjectAtIndex(i, withObjectAtIndex: Int(arc4random_uniform(UInt32(i+1))))
        }
    }
    return mutableArray as NSArray
}

Thứ Ba, 26 tháng 12, 2017

Áp sự kiện click cho 1 cell in IOS

 cell.didSelectNews = { (md:ModelNews) -> () in
                        (self.delegate?.CateViewController_Selected(modelSelected: [md]))!

                    }


// trong class cell 

open var didSelectNews: ((_ md: ModelNews ) -> ())?

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        
        if let mdGet = arrPost?[indexPath.item]  {
            let mdPost = mdGet as! ModelNews
            didSelectNews!(mdPost)
        }
}

Chủ Nhật, 24 tháng 12, 2017

Lấy Json từ api in IOS

APIManager.sharedInstance.getApiVedette { (arrCate, error , data) in
                
                
                if error == "" {
                    
                    self.arrCateGet.addObjects(from: arrCate as! [Any])
                    
                }
                else {
                     AlertBar.show(.error, message: Configs.String_GetApiError, duration: 3)

                }


Class APIManager : 


static let sharedInstance = APIManager()
    
    public func getApiVedette(completion: @escaping(NSArray,String,Data) -> Void){
        
        let url = "https://api.minhnhut027.home"
        
       
        Alamofire.request(url).responseJSON { respone  in
            
            if let data = respone.data {
                let (arrGet,error) = ModelNews().parseVedetteWithData(data: data as NSData)
                completion(arrGet,error as String,data)
            }
            else {
                
                completion(NSArray(),"error",Data())
            }
        }
        
    }

// ham parse json 

 func parseVedetteWithData(data:NSData)->(NSArray,NSString){
        
        do {
            
            let parseJSON = try JSONSerialization.jsonObject(with: data as Data, options: .allowFragments)
            let arr_cate_get = NSMutableArray()
                
            if  let itemRelatedDir = parseJSON as? [String: Any] {
                        
                        let cateGet = ModelCate()
                
                        cateGet.m_isHome = true
                        cateGet.m_cate_name = "vedette"
                
                        let arrRelated = NSMutableArray()
                
                        let (model,_) = parseWithDic(dictionary: itemRelatedDir)
                        arrRelated.add(model)
                        cateGet.m_childs = arrRelated
                        
                        arr_cate_get.add(cateGet)
             }
                
             return (arr_cate_get,"")
         
            
        } catch let error as NSError {
            print("Failed to load: \(error.localizedDescription)")
            return (NSArray(),"\(error.localizedDescription)" as NSString)
        }
        
        return (NSArray(),"error")
    }


// ham parse

func parseWithDic (dictionary: [String: Any])->(ModelNews,NSString){
        
        let modelNewsGet = ModelNews()
        //if let dictionary = parseJSON as? [String: Any] {
        
            if let object_id = dictionary["object_id"] as? String {
                modelNewsGet.m_object_id = object_id
            }
            if let title = dictionary["title"] as? String {
                modelNewsGet.m_title = editTitle(title: title)
            }
            if let description = dictionary["description"] as? String {
                modelNewsGet.m_description = description
            }
            if let object_url = dictionary["object_url"] as? String {
                modelNewsGet.m_object_url = object_url
            }
            if let layout = dictionary["layout"] as? String {
                modelNewsGet.m_layout = layout
            }
            if let sport = dictionary["sport"] as? Int {
                modelNewsGet.m_sport = sport
            }
            if let object_content = dictionary["object_content"] as? String {
                modelNewsGet.m_object_content = object_content
            }
            if let thumb_link = dictionary["thumb_link"] as? String {
                modelNewsGet.m_thumb_link = thumb_link
            }
            if let thumb_caption = dictionary["thumb_caption"] as? String {
                modelNewsGet.m_thumb_caption = thumb_caption
            }
            if let time_published = dictionary["time_published"] as? String {
                modelNewsGet.m_time_published = time_published
            }
            if let author = dictionary["author"] as? String {
                modelNewsGet.m_author = author
            }
            if let comment_count = dictionary["comment_count"] as? String {
                modelNewsGet.m_comment_count = comment_count
            }
            if let object_like_number = dictionary["object_like_number"] as? String {
                modelNewsGet.m_object_like_number = object_like_number
            }
            if let video_link = dictionary["video_link"] as? String {
                modelNewsGet.m_video_link = video_link
            }
            if let video_length = dictionary["video_length"] as? String {
                modelNewsGet.m_video_length = video_length
            }
            if let cate_id = dictionary["cate_id"] as? String {
                modelNewsGet.m_cate_id = cate_id
            }
        
    }

Thứ Hai, 18 tháng 12, 2017

Thứ Hai, 11 tháng 12, 2017

Truyen tham so NotificationCenter in IOS


// khoi tao 
NotificationCenter.default.addObserver(self, selector: #selectorself.gotoSelectCate( not: ) ), name: NSNotification.Name(rawValue: "gotoSelectCate"), object: nil)




func gotoSelectCate( not: NSNotification ){
        
        if let userInfo = not.userInfo {
            
            if let userName = userInfo["name"] as? String {
                print(userName)
                scrollToCateSelected(md: arrList[Int(userName)!] as! ModelCate)
            }
        }
        self.slideMenuController()?.closeLeft()
        

 }

// class khac 

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "gotoSelectCate"), object: self , userInfo: ["name": mdGet.m_type ] )

Thứ Ba, 28 tháng 11, 2017

Thay thế chuổi kí tự này thành ký tự khác


self.mdDetailGet.m_object_content?.replacingOccurrences(of: "[box]", with: "")

Thứ Sáu, 24 tháng 11, 2017

Hàm chuyễn đổi bao nhiêu giờ phút trước in IOS

func timeAgoSinceDate(_ date:Date,currentDate:Date, numericDates:Bool) -> String {
    let calendar = Calendar.current
    let now = currentDate
    let earliest = (now as NSDate).earlierDate(date)
    let latest = (earliest == now) ? date : now
    let components:DateComponents = (calendar as NSCalendar).components([NSCalendar.Unit.minute , NSCalendar.Unit.hour , NSCalendar.Unit.day , NSCalendar.Unit.weekOfYear , NSCalendar.Unit.month , NSCalendar.Unit.year , NSCalendar.Unit.second], from: earliest, to: latest, options: NSCalendar.Options())

    if (components.year! >= 2) {
        return "\(components.year!) years ago"
    } else if (components.year! >= 1){
        if (numericDates){
            return "1 year ago"
        } else {
            return "Last year"
        }
    } else if (components.month! >= 2) {
        return "\(components.month!) months ago"
    } else if (components.month! >= 1){
        if (numericDates){
            return "1 month ago"
        } else {
            return "Last month"
        }
    } else if (components.weekOfYear! >= 2) {
        return "\(components.weekOfYear!) weeks ago"
    } else if (components.weekOfYear! >= 1){
        if (numericDates){
            return "1 week ago"
        } else {
            return "Last week"
        }
    } else if (components.day! >= 2) {
        return "\(components.day!) days ago"
    } else if (components.day! >= 1){
        if (numericDates){
            return "1 day ago"
        } else {
            return "Yesterday"
        }
    } else if (components.hour! >= 2) {
        return "\(components.hour!) hours ago"
    } else if (components.hour! >= 1){
        if (numericDates){
            return "1 hour ago"
        } else {
            return "An hour ago"
        }
    } else if (components.minute! >= 2) {
        return "\(components.minute!) minutes ago"
    } else if (components.minute! >= 1){
        if (numericDates){
            return "1 minute ago"
        } else {
            return "A minute ago"
        }
    } else if (components.second! >= 3) {
        return "\(components.second!) seconds ago"
    } else {
        return "Just now"
    }

}