Tag: uikit

移动一个UIImageView

沿着点阵移动图像的最佳方法是什么?

如何确定哪个tabbar索引是我的视图控制器

有人可以告诉我如何可以确定视图控制器在哪个tabbar索引。 简化 – 我可以通过硬编码索引跳转到tabBarItem。 self.tabBarController.selectedIndex = 3; 但是,如果用户自定义标签栏项目,则可能是编号为3的viewController不是用户希望的,因为它已被移动。 我怎样才能确定它已经移动到哪里,所以我可以select正确的。 请任何帮助。 谢谢, 背风处

如何取消一个UIWebView?

我模式展示一个UIWebView作为其视图的UIViewController 。 当用户点击取消button时,如何解除UIWebView ? 我有一个想法是有取消button链接到http://取消 ,然后登记 – (void)webViewDidStartLoad:(UIWebView *)webView 如果webView.request.URL.host isEqualToString:@"cancel" ,则closures视图控制器。 主机是否必须有一个点,例如“cancel.com”?

UIGraphicsBeginImageContextWithOptions和multithreading

我对UIGraphicsBeginImageContextWithOptions和线程有点困惑,因为根据UIKit函数参考 UIGraphicsBeginImageContextWithOptions只能在主线程上调用。 当被调用的时候,它会创build一个基于位图的上下文,这个上下文可以用CoreGraphics的函数或者像drawInRect: for UIImage , -drawInRect:withFont: for NSString等方法来处理。 对于CoreGraphics的绘图,一切都很清楚 – 你将一个CGContextRefparameter passing给每个函数,但UIKit绘图方法使用栈中的当前上下文。 在iOS 4.0新增function的发行说明中写道 在UIKit中绘制graphics上下文现在是线程安全的。 特别: – 用于访问和操作graphics的例程 上下文现在可以正确处理驻留在不同线程上的上下文。 – string和图像绘制现在是线程安全的。 – 在多个线程中使用颜色和字体对象现在是安全的。 到现在为止还挺好。 有趣的部分是我有一个项目,在那里我通过创buildUIGraphicsBeginImageContextWithOptions上下文创build了多个图像,并创build了多个图像,但是当这些操作碰巧比较费时,我只是在后台线程中移动绘图,一些animation显示在屏幕上,一切正常 – 没有崩溃,没有泄漏。 图像绘制,因为它们是预期的,它似乎UIGraphicsBeginImageContextWithOptions为后台线程创build一个上下文,一切似乎都很好。 所以我的问题是: – 为什么有必要只调用UIGraphicsBeginImageContextWithOptions在主线程,因为它似乎在后台工作正常? – 如何使用UIImage的-drawInRect:方法在后台线程中,我没有当前的上下文,我似乎无法创build一个,因为我不能在那里调用UIGraphicsBeginImageContextWithOptions ? – 什么是正确的方法来使用UIKit的方法背景image processing(我知道我也可以使用CGBitmapContextCreate ,但它既不推动创build的上下文到上下文堆栈,我似乎也能够做到这一点,以便使用-drawInRect: UIImage方法)?

UIWebViewsearch

在UIWebViewsearchstring的最佳方式是什么?

UITextView在使用iOS 7 SDK构build时包装文本

我在UIScrollView里面有一个UITextView ,这个UITextView在xcode 4.x构build的iOS 6上工作得非常好,但是现在使用xcode 5构build它甚至在iOS 6上都不能正常工作。 问题是即使UITextView和UIScrollView具有较大的宽度,文本仍然以屏幕宽度进行换行。 我使用此代码来计算出UITextView的新宽度和高度,即使textview向左/向右滚动,文本也被包裹,就好像宽度只是屏幕的宽度一样。 谢谢 self.responceTextView.text = [NSString stringWithFormat:@"%@%@",_responceTextView.text,responce]; [self textViewDidChange:self.responceTextView]; – (void)textViewDidChange:(UITextView *)textView { // Recalculate size of text field CGSize maxSize = CGSizeMake(MAXFLOAT, MAXFLOAT); CGSize reqSize = [textView.text sizeWithFont:[UIFont fontWithName:@"Courier" size:12] constrainedToSize:maxSize lineBreakMode:NSLineBreakByClipping]; self.responceTextView.frame = CGRectMake(0, 0, reqSize.width+16, reqSize.height+16); // Resize scroll view if needs to be smaller so […]

以编程方式向UIViewController添加UITableView

我正在加载一个UIViewController到我的导航控制器的层次结构,其中将包含一些文本和一些图像。 在底部,我将要创build一个可扩展和可折叠的tableview。 首先,这个想法是可能的吗? 如果是这样,我该如何添加它,以及我在哪里放置数据源和委托方法? 我可以做一个单独的TableViewController的子类,然后将其作为子视图添加到我的ViewController?

取消交互式UINavigationControllerpopup手势不会调用UINavigationControllerDelegate方法

如果拖动UIViewController以在UINavigationController开始交互式popup转换,则当前窗口下方的UIViewController具有viewWillAppear: called,随后是UINavigationControllerDelegate方法navigationController:willShowViewController:animated: 如果取消转换, viewWillAppear:预期方式在顶部视图控制器上调用viewWillAppear:和viewDidAppear: 但是, navigationController:willShowViewController:animated:委托方法navigationController:willShowViewController:animated:或navigationController:didShowViewController:animated: 至less应该调用其中的一个或两个,考虑调用UIViewController视图生命周期方法。 我想知道这是故意的还是UINavigationController的错误。 我真正需要的是能够在UINavigationController子类或其UINavigationControllerDelegate看到何时取消交互式popup窗口。 有没有一个明显的方法来做到这一点? 编辑 我仍然在寻找一个解决scheme,但要提一下,我已经把这个问题报告为苹果的一个bug。 查看文档,这些委托方法不应该被调用,特别是考虑到调用等效的视图生命周期方法。 EDIT2 我的雷达票(16823313)今天(2015年5月21日)closures,并按预期标记。 🙁 工程部门根据以下信息确定此问题的行为如预期的那样: 这实际上是正确的行为。 从B – > A发生的导航转换,如果在转换过程中取消它,则不会得到didShowViewController:方法。 这个过渡的取消不应该被认为是从A→B的过渡,因为你从来没有真正达到A. 查看[Will / Did]出现仍然应该如期调用。 这是一个令人失望的情况,因为这是违反直觉的,但是我的回答中的解决方法在可预见的未来应该可以正常工作,至less对我来说是这样。

UITableViewAutomaticDimension不能工作,直到滚动

当第一次加载表视图时,所有可见的单元格是estimatedRowHeight。 当我向下滚动时,单元格会自动resize,当向后滚动最初估计的单元格时,会自动resize。 一旦细胞自动大小,他们似乎再也没有回到估计的高度。 override func viewDidLoad() { super.viewDidLoad() self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil) self.tableView.estimatedRowHeight = 80.0 self.tableView.rowHeight = UITableViewAutomaticDimension // Uncomment the following line to preserve selection between presentations // self.clearsSelectionOnViewWillAppear = false // Uncomment the following line to display an Edit button in the navigation bar for this view […]

在UITabBarController的当前上下文中呈现模态视图控制器之后的黑屏

我的根视图控制器是一个UITabBarController。 我试图通过其中一个标签栏控制器的视图控制器呈现一个模式的视图控制器,但仍然允许标签栏被用来去一个不同的选项卡 – 换句话说,我想模式只能中断该特定标签的stream程,而不是整个应用程序。 为了做到这一点,我已经在storyboard中将呈现视图控制器的performance风格设置为“Over Current Context”。 我遇到的问题是,在呈现模式视图控制器并select新选项卡后,呈现视图控制器的视图将从窗口中删除,并且在closures呈现的视图控制器时不会将其添加回窗口。 closures视图控制器后,移动到另一个选项卡,然后返回,最后把呈现视图控制器放回窗口。 我已经使用Xcode中的“Tabbed”模板复制了我的问题。 在呈现模态之后 – 我已经为所呈现的视图控制器添加了透明度,以便轻松看到呈现的视图控制器中发生了什么。 更改为第二个选项卡,然后返回 – 呈现视图控制器的视图现在已被删除。 closures模式会使呈现视图控制器的视图仍然从窗口中移除。 转到选项卡2并返回将视图添加回窗口。 我希望这是简单的,我已经忽略了故事板,但事实上,我可以提出的模式,并看到它之前更改制表符之前提出的视图控制器让我觉得我已经正确设置的东西。