Tag: uikit

我应该做的丢弃一个UIImageView的Image属性来帮助Monotouch中的垃圾收集器?

在我减less内存使用的追求,另一个问题。 我看到, UIImage和CGImage可能是我的应用程序中的高内存使用的候选人。 无论我在哪里使用UIImage,我都会尝试将其封装在一个使用块中,以便尽快Dispose() d。 但是, UIImage经常以UIImageView.Image属性结束。 如果我从它的Superview删除UIIImageView ,我应该Dispose() Image属性之前,并将其设置为null或这是浪费input?

以编程方式绘制粗略的线条

我想知道你们是否有任何想法,可以在iOS应用程序上绘制粗略的线条。 目前我正在绘制一个UIBezierPath,然后渲染成位图graphics上下文。 我怎么能让这条线看起来粗略? // Produce and add points to draw in the UIBezierPath // Draw the path into the Bitmap context UIGraphicsBeginImageContext(self.bounds.size); [frameBuffer drawAtPoint:CGPointMake(0, 0) blendMode:kCGBlendModeCopy alpha:1.0]; [[datasource lineStrokeColorForSketchCanvas:self] setStroke]; [curvePath stroke]; image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 非常感谢您提前:)

为什么不分类UIApplication? 为什么要使用委托?

而不是使用应用程序委托,以便UIApplication单例可以在预定义的时间调用委托方法,只是UIApplication什么优点和缺点? ( 更新:为什么iOS架构使用应用程序委托,而不是让人们通过UIApplication并重写其各种方法来编写应用程序?) 这是因为当我们创build一个新的UIView控件时,我们UIView ( update:或者我们也是UIViewController子类)。 那么为什么在应用的情况下,我们不UIApplication子类,而是使用委托?

如何使横向Xcode 5应用程序项目在横向方向上启动?

我创build了一个“单一视图应用程序”项目,并将所有选项设置为启动并仅支持横向导向。 但该应用程序启动与纵向窗口的窗口。 控制台输出说application:didFinishLaunchingWithOptions:之后的窗口application:didFinishLaunchingWithOptions:是: {{0, 0}, {768, 1024}} 我添加了一个标准的系统button来查看ViewController来说明该应用程序是风景,而不是肖像,但该窗口是肖像。 由于堆栈溢出具有白色背景,因此我可以在Photoshop中将右侧的部分着色为灰色,以便您看到它: 在application:didFinishLaunchingWithOptions:我把窗口application:didFinishLaunchingWithOptions:红色。 显然不是横向的。 我已经尝试了所有我知道的技巧: 1)Info.plist包含UISupportedInterfaceOrientations关键字:UIInterfaceOrientationLandscapeLeft和UIInterfaceOrientationLandscapeRight 2)Info.plist包含UISupportedInterfaceOrientations〜ipad关键字:UIInterfaceOrientationLandscapeLeft和UIInterfaceOrientationLandscapeRight 3)Info.plist包含初始界面方向的UIInterfaceOrientation键:UIInterfaceOrientationLandscapeRight 4)点击Xcode中的项目,然后取消选中所有肖像选项,只检查横向选项: 5)AppDelegate和ViewController都有: – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return UIInterfaceOrientationIsLandscape(interfaceOrientation); } – (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight; } – (BOOL)shouldAutorotate { return YES; } 6)AppDelegate有: – (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight; } Xcode创build了两个故事板文件。 我现在只在iPad上进行testing。 一个是Main_iPad.storyboard,它显示了一个纵向的视图控制器。 但它只是一个模拟的接口指标。 改为景观和预期没有效果。 在应用程序启动过程中,我检查了UIScreen边界,它也是清晰的肖像,而不是风景: […]

将UIKit坐标转换为SpriteKit坐标

我试图将正常的uikit坐标(左上angular,宽度和高度向右和向下)转换为Sprite Kit坐标(原点在节点中心,左下angular为负值,右上angular为正值)。 有谁知道如何做到这一点? 不幸的是,我不能解决这个问题,因为我使用QuartzCore来绘制一个SKNode。 没有转换,我得到真正的图纸。

编译iOS的Qt(UIKit灯塔)

我一直在努力为iOS编译Qt,但是我一直有一些疯狂的问题,至less根据我在过去一天所读到的内容,似乎没有其他人在使用。 我遵循这篇文章的说明: 文章url 我从git克隆了最新的Qt 4.8: $ git clone git://gitorious.org/qt/qt.git 我做了qt-lighthouse-ios-simulator文件夹,cd到它。 我从文章中运行了很长的一行代码: $ ../qt/configure -qpa -xplatform qpa/macx-iphonesimulator-g++ -arch i386 -developer-build -release -opengl es2 -no-accessibility -no-qt3support -no-multimedia -no-phonon-backend -no-svg -no-webkit -no-scripttools -no-openssl -no-sql-mysql -no-sql-odbc -no-cups -no-iconv -no-dbus -static -nomake tools -nomake demos -nomake docs -nomake examples -nomake translations o许可证 yes我接受协议 我得到这些错误: In file included from /System/Library/Frameworks/ApplicationServices.framework/Frameworks/HIServices.framework/Headers/Accessibility.h:13, from […]

UICollectionView单元布局超出了集合视图的范围

我有一个UICollectionView,它使用stream布局来放置它的单元格。 它是垂直滚动。 它填充320×480的屏幕,并显示一个总是96 * 96的自定义UICollectionViewCell – 大小是在Interface Builder中设置的,委托没有实现方法来设置每个项目的项目大小。 左右各有10个插图,最小间距设置为6px。 因此会发生什么是每个水平线3个单元格。 <-10 – > <—- —- 96> < – 6 – > <—- —- 96> < – 6 – > <—- —- 96> < – 10-> = 320。 我遇到的问题是偶尔会在一行上放置4个单元格! 第四个单元大部分在屏幕之外。 然后在下面一行放置2个单元来补偿。 整个stream程布局的关键在于它是一个破线的布局,不应该把任何东西放在屏幕外! 我附上了一张照片: 请注意,在第二行中,大部分屏幕上还有第四项。 我真的不知道是什么原因造成的。 单元格dynamic填充数据,但大小不变。 所有其他行上的单元格都很合适,所以没有理由在某些行上这会发生。 每次收集视图更新时,此错误都会发生在不同的位置。 即。 它可能发生在第2行,那么一旦更新发生,它可能发生在第10行,依此类推。 收集视图正在由定时器更新。 定时器本质上是调用处理某些数据的函数,然后使用dispatch_async(在主队列上)更新包含后备数据的数组,并调用[collectionView reloadData]。 所以我没有更新从主线程以外的任何线程的集合视图。 后备数组只在主队列和该函数中更新; 不从其他地方。 […]

DisclosureIndicator不检测触摸

我使用UITableViewCellAccessoryDisclosureIndicator作为我的UITableViewCell accessoryType 。 根据苹果的文档,数据源的方法 – (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 应该会自动被调用。 如果单元格已启用,并且附件types为UITableViewCellAccessoryDe​​tailDisclosureButton,则附件视图会跟踪触摸,并在轻敲时向数据源对象发送tableView:accessoryButtonTappedForRowWithIndexPath:消息。 这是我的代码: – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } [cell.textLabel setText:[datasource objectAtIndex:indexPath.row]]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; return cell; } 数据源方法只是一个NSLog但没有打印… 我错过了什么吗? (当然,数据源和代理设置正确)

当从UISplitViewController显示时,UITableViewController自动滚动停止考虑键盘

当你UITableViewController ,你通常会得到一些“免费的”行为。 例如,当表格视图中的文本字段成为第一响应者时,视图控制器自动滚动以确保字段完全可见。 但是,当表视图控制器是UISplitViewController的详细视图控制器时,此自动滚动不再考虑键盘的存在。 表格视图控制器仍然会自动滚动以将文本字段保持在屏幕边界内,但不再滚动以保持字段不被键盘覆盖。 您可以通过使用Xcode的“主 – 细节应用程序”模板创build一个新项目,并用一个表格视图控制器来replace细节视图控制器,从而显示其中包含文本字段的单元格。 我想知道为什么在这种情况下,自动滚动会停止计算键盘,如果可能的话,如何纠正这种情况,而不必自己复制自动滚动function。 顺便说一句,这与重写viewWillAppear无关(如在这里关于表视图控制器自动滚动一些其他问题)。

iOS 7 – UIPopoverController:不推荐使用的箭头?

我正在调整我的应用程序到iOS 7,当我正在阅读文档时,我阅读了这一行,在这个链接的 popoverArrowDirection下: “(已弃用,iOS 7及更高版本中不使用箭头)” 这很奇怪,因为我的popover似乎仍然在iOS 7中有箭头。我只是理解这是错误的方式吗?