Tag: cocoa touch

UITextView中的不同颜色

我尝试在我的UITextView中添加不同颜色的string。 我写了这个代码 NSMutableAttributedString* attString = [[NSMutableAttributedString alloc]initWithString:view.text]; //view is my UITextView [attString addAttribute:(NSString*)kCTForegroundColorAttributeName value:[UIColor greenColor] range:(NSRange){attString.length-8, 8}]; view.attributedText = attString; 也许这是不正确的属性,你能告诉我什么属性改变文字颜色?

UITextField键盘在加载时阻塞runloop?

因为我find了一个非常长的第一个加载时间的键盘(即使与iphone4S IOS 5)令人讨厌的问题,我试图实现一个自定义的UITextField显示一个UIActivityIndi​​cator如果键盘花费太长的时间来加载。 但是,我发现UIActivityIndi​​cator无法在键盘加载时添加到超级视图。 如果我设置了一个较短的延迟,或者指示器出现的方式太晚,就像键盘出现,当我设置一个稍长的延迟(0.3毫秒,尽pipe实际上需要1秒以上,如键盘加载)。 我已经尝试使用performSelector:withObject:afterDelay:inModes:在NSRunLoopCommonModes中设置我的活动指标,但似乎键盘加载阻止此模式。 我也尝试过使用GCD,但似乎遇到了与键盘加载和显示相同的调度队列中的活动指示器设置的相同问题。 如何在键盘加载时添加活动指示器视图? 这是我的代码: @interface CustomTextField : UITextField { UIActivityIndicatorView *spinner; CGPoint spinnerCenter; BOOL shouldShowSpinner; } @property (assign) UIActivityIndicatorView *spinner; @property (assign) CGPoint spinnerCenter; @property (assign) BOOL shouldShowSpinner; – (void)stopSpinner; @end @implementation CustomTextField @synthesize spinner; @synthesize spinnerCenter; @synthesize shouldShowSpinner; – (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.spinnerCenter […]

从iOS的Temp目录中删除文件

我正在写一个iOS应用程序,其中即时从服务器下载文件并将其存储在SQL数据库,然后当用户点击一个消息,它将解压缩文件和显示文件的内容。 为了这个目的,我写了这个function,我认为这对我想要做的是正确的: 这是从sql中获取文件,并将这些文件解压缩到临时文件夹中 NSString *unzipFolder = [[CommonFunctions getCachePath]stringByAppendingPathComponent:@"temp"]; 和一旦用户完成查看此消息,我试图删除这个临时文件夹,所以当用户点击下一条消息显示它有临时文件夹上的空间,因为函数可以随时解压缩文件,以后显示 [[NSFileManager defaultManager] removeItemAtPath:unzipFolder error:&error]; 我的问题是,当我运行删除解压缩文件夹内容的function,它不会删除这个内容,当用户点击下一个项目从消息它显示以前的消息图像(因为他们没有清理和自动更换)。 我怎样才能解决这个问题,我怎么能存储在临时文件夹的iOS文件和干净的P当用户完成它。

如何将HTML映射到iOS中的NSAttributedString

由于NSAttributedString initWithHTML addtion只能在Mac OS上使用,而不能在iOS上使用。

UIWebView更低的加载时间,更高效的方式

我正在下载乘法htmls并将它们保存在NSArraystring本地。 然后我使用3个UIWebViews加载内容。 用户总是看到一个UIWebView并使用下面的代码在后台加载2个UIWebViews : [_firstWebView loadHTMLString:nextHtml.body baseURL:nil]; 当用户在UIWebViews之间移动时,如果他一次移动2个UIWebViews ,我仍然可以看到1-2秒的加载速度慢。 我想到了5甚至7 UIWebViews但恐怕会严重影响内存使用。 另一个想法是保存在NSData本地的内容,然后加载 [web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]]; 但是我不确定这会给我带来什么改善,还是会呢? 另一个想法是,我的应用程序(屏幕上的animation)的东西是减缓加载时间,所以也许我应该加载loadHTMLString:nextHtml在不同的线程? 谢谢

UIImagePickerController与状态栏iOS8

我UIImagePickerController尝试覆盖其默认状态栏的行为和混合结果。 我的应用程序使用基于视图控制器的状态栏外观。 没有子类,我发现当select器被解散时,它将状态栏样式更改为Default (黑暗),并且我在初始视图控制器中没有尝试过任何东西。 另外,当select器隐藏状态栏时,向上滑动,初始视图控制器的导航条从高度64上滑动到44。 因此,我希望我的UIImagePickerController子类保持状态栏的风格为LightContent并尝试解决滑动导航栏时,保持显示状态栏呈现select器,然后将其隐藏在viewDidAppear: 第一个有趣的事情是,我的prefersStatusBarHidden子类中的preferredStatusBarStyle和prefersStatusBarHidden根本没有被调用,直到我也覆盖了childViewControllerForStatusBarStyle和childViewControllerForStatusBarHidden返回nil。 这似乎表明,通常, UIImagePickerController重写这些,可能会返回一个内部子视图控制器。 查看viewDidAppear:中的视图层次结构,当然有一个孩子PLImagePickerCameraView ,它可能有一个控制器去与它。 可悲的是,我们不能覆盖这个控制器。 覆盖那些childViewControllerFor…方法, preferredStatusBarStyle和prefersStatusBarHidden在viewWillAppear:和viewDidAppear:之间调用,确实可以保持状态栏可见和LightContent 。 然而, 第二件有趣的事情是,在presentViewControlleranimation之前,状态栏会短暂地眨眼睛。 在viewWillAppear:或者像viewDidLoad:这样的其他地方,没有额外的setNeedsStatusBarAppearanceUpdate额外的调用viewDidLoad:似乎阻止了这一点。 第三件有趣的事情是,在解雇期间,酒吧风格仍然被设置为黑暗,在select器的viewWillDisappear:没有额外的setNeedsStatusBarAppearanceUpdate调用viewWillDisappear:或者viewDidDisappear:似乎阻止了这一点。 tl; dr – 我发现覆盖UIImagePickerController来隐藏和显示状态栏按需工作很好,但设置栏样式是有问题的。 select器类或UINavigationController本身中的某些内容自动更喜欢Default栏样式,当它切换到解除时,似乎很难将其切换回去。 我看到了问题UIImagePickerController打破了状态栏的外观 ,没有看到有什么帮助,而且iOS8.1不能解决它。 我确定把picker的navigationBar.barStyle设置为黑色就可以了,但是没有骰子。 任何想法任何人? (另外,当隐藏状态栏时,防止UINavigationController的导航栏滑动到44的高度的任何提示将是有用的thx)

UITableView setEditing为NO不会改变barButtonItem回来

我有一个UITableViewController里面的UINavigationController 。 我正在设置rightBarButtonItem到编辑button: self.navigationItem.rightBarButtonItem = self.editButtonItem; 这工作很好,并在我调用tableView:commitEditingStyle:forRowAtIndexPath:我编程更改我的tableView出编辑模式使用: [self.tableView setEditing:NO animated:YES]; 这里的奇怪的事情是, barButtonItem似乎仍然处于“编辑模式”,因为它仍然表示“完成”,就像我处于编辑模式时一样。 点击它将button更改回“编辑”,然后我必须点击“重新join”才能重新进入编辑模式。 为什么不是barButtonItem从编辑模式改变?

在iPhone SDK上等待CLLocationManagerDelegate的didUpdateToLocation方法时,UITableView不会填充

我正在尝试用单元格数组填充UITableview。 我通常从viewDidLoad方法做到这一点,但这次我想根据位置填充数组。 以下是我的界面的第一行: @interface RootViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource, CLLocationManagerDelegate> { 在实现文件中,viewDidLoad方法如下所示: – (void)viewDidLoad { // for location self.locationManager = [[CLLocationManager alloc] init]; [locationManager startUpdatingLocation]; locationManager.delegate = self; locationManager.distanceFilter = kCLDistanceFilterNone; locationManager.desiredAccuracy = kCLLocationAccuracyBest; [super viewDidLoad]; } 我在didUpdateToLocation方法中填充单元格数组: self.title = @"Open Buildings"; NSMutableArray *buildingArray = [[NSMutableArray alloc] initWithObjects:building1, self.controllers = array; 视图的标题在find位置时更新,但数组不填充。 在viewdidupdate中有上面的代码之前,数组填充了。 我不得不将它移动到didupdatelocation方法,因为当视图加载到viewDidLoad方法中时,应用程序将没有位置信息。

如何获得TableView内的填充?

我有一个黑暗的透明背景,我想有一个填充我试图完成使用contentInsets , contentSize和contentOffset一个TableView: CGFloat padding = 10.0f; CGSize size = self.tableView.bounds.size; size.width -= (padding*2); size.height -= (padding*2); self.tableView.contentSize = size; self.tableView.contentInset = UIEdgeInsetsMake(padding, padding, padding, padding); self.tableView.contentOffset = CGPointMake(-padding, -padding); 这是行不通的。 我得到了填充,但细胞也没有resize,也没有重新定位。 我知道,我可以将TableView嵌套在另一个View中,但应该有另一个解决scheme。 编辑: 我对“contentSize”的含义有一个误解。 这不是视口的大小,而是您指定内容的实际大小。 所以我可能会.. 如果可能,调整单个单元格的大小(可能与TableView的布局过程相冲突) 像上面那样将一个内容偏移量应用于TableView

从UIPickerView中删除未select的项目

我正在研究一个有多个UIPickerViews的nib文件,正如你在下面看到的那样,它是非常拥挤的。 我基本上想把它弄干净,并删除所有的“灰色”项目,只显示选定的项目。 如果您有任何想法可以使页面清洁,请分享,这是一个UI问题,而不是一个逻辑或代码问题。 提前致谢。