问题标签 [uiview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2168 浏览

iphone - 自定义 UIView 问题

我有一个自定义 UIView 类,并且我已将我在 IB 中的视图与此类链接。在我自己的自定义类中,我有一个功能

所以在我的视图控制器中,我这样调用这个函数:

但是,该功能正常工作,但给我警告说,如 UIView 可能不会响应此功能并假定返回 id,我不知道它是如何发生的,因为我已将我的自定义类链接到 IB alr 中的视图,请帮助

0 投票
3 回答
3419 浏览

iphone - 为什么 UIWindow 是 UView 的孩子,也是 UView 的父母?

UIKit 参考说 UIView 是 UIWindow 的超类,但尽管有这种父级,但 UIWindow 实际上管理 UIView。这对我来说听起来很不寻常。

有谁知道这在软件设计方面有什么意义?

非常感谢。

编辑:
我阅读了 iPhone 编程指南中的相关段落。然而我不明白为什么他们会反其道而行之:让 UIWindow 成为 UIView 的父级。一定有什么东西迫使 Apple 以这种方式设计类层次结构。

0 投票
2 回答
2073 浏览

iphone - 你将如何为 UIScrollView 实现 dataSource 对象?

如果我错了,请告诉我:

我创建了一个新类 ScrollViewDataSource。该类符合我在委托中为滚动视图创建的协议。嗯,它是一个非常特殊的委托,它在滚动时会做一些非常复杂的事情。因此,此委托在初始化时接收该数据源对象。数据源对象现在有一个方法

  • (NSArray*)subviewsFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex;

因此,当用户滚动时,委托会在滚动时多次响铃数据源对象以请求数据。我将在滚动期间回收视图。这意味着,如果用户向下滚动,我会从上到下删除视图,并用新数据填充它们。

NSArray 包含 UIView 对象,这些对象将在滚动期间适当定位。此外,在第一次启动包含滚动视图的视图时,数据源将传递数据以显示第一个可见内容。

这是一个好的模式,还是你有更好的想法?顺便说一句:我知道 UITableView 做了类似的事情。但我想学那个。这对我来说是一种练习。谢谢!

0 投票
2 回答
4677 浏览

iphone - UIView 动画交互不好

我看到似乎是单独动画之间的交互,我非常感谢任何消除这种影响的建议。

基本上:我有一个 iPhone 应用程序,它在根视图上包含一个按钮“a”。点击“a”将视图推送到导航视图控制器堆栈上,并带有翻转动画。推送的视图有一个按钮可以将视图弹出回根目录。

底层代码:

}

这似乎工作正常,动画非常流畅。

根视图还包括一个子视图(“panelView”)和另一个按钮“b”。panelView 可以显示其他两个子视图中的任何一个——在这些子视图之间点击“b”交换,并带有旋转动画。编码:

}

这似乎也可以正常工作。每个可交换面板都包含一个选择器和一些标签。

但是,我注意到如果在它之前执行了“b”转换,那么“a”转换会变得缓慢而生涩。换句话说,如果我启动应用程序,来回运行'a'几次,它运行顺利。然后来回练习'b'几次。然后再试一次'a'......'a'现在是生涩的,并且会一直如此,直到应用程序重新启动。

这是 100% 可重复的。使用模拟器很微妙,但在设备上却很明显。我已经测试过泄漏——泄漏工具没有显示任何泄漏。如果动画从 'b' 操作中移除(只是注释掉动画步骤),则在执行 'b' 子视图交换后不会观察到对 'a' 的影响。如果将拾取器从可更换的面板笔尖中移除,同样会消除这种影响。如果“a”动画过渡设置为缓存,那么在“b”之后它不会在中间卡顿,而是似乎忽略动画,只是交换视图(这可能是感知问题)。

如果我不清楚:我不会同时触发这些单独的操作。动画 'a',在 'b' 被执行之后——并且完成——与 'b' 从未被执行是不一样的。动画后我应该做清理工作吗?我的子视图交换代码有缺陷吗?或者...?

在此先感谢您的任何建议。

0 投票
1 回答
13134 浏览

objective-c - 为什么 UIView.exclusiveTouch 不起作用?

在我的一个 iPhone 项目中,我有三个视图,您可以通过触摸和拖动来移动它们。但是,我想通过使用两个手指来阻止用户同时移动两个视图。因此,我尝试尝试使用 UIView.exclusiveTouch,但没有任何成功。

为了了解该属性的工作原理,我创建了一个全新的项目,在视图控制器中使用以下代码:

当运行这个时,hej: 被调用,不同的发件人,当按下任何一个按钮时——即使其中一个将 ExclusiveTouch 设置为 YES。我试过评论multipleTouchEnabled-lines,但无济于事。有人可以向我解释我在这里缺少什么吗?

谢谢, 伊莱

0 投票
4 回答
40298 浏览

iphone - 使 UIView 的背景成为没有子类的渐变

有没有办法使 UIView 的背景成为渐变而不继承它?我也不想使用图像文件来完成此操作。仅仅为了为背景绘制渐变就必须继承 UIView 似乎很迟钝。

0 投票
1 回答
978 浏览

iphone - 将图像显示为弹出窗口

我需要在 UIWebView 顶部显示表格格式的数据作为模式。基本上是一个 UIAlertView。但是,我需要在此模式中显示表格数据,这是 UIAlertView 无法做到的(据我所知)。我正在考虑创建一个包含文本数据的图像,并在 UIImageView 或 UIView 中显示图像,该图像可以有一个关闭按钮。不确定这是否可以全部变成模态的。

我看到一个视图可以作为子视图添加到 UIAlertView:http: //blogs.oreilly.com/iphone/2008/03/open-iphone-sdk-building-a-uip.html。不过,不确定苹果是否会这样做。

这些方法听起来可行还是有更好的方法?

0 投票
2 回答
535 浏览

iphone - 重新加载包含 UITableView 的 UIViewController 时的 EXEC_BAD_ACCESS

执行以下步骤时,我得到一个 EXEC_BAD_ACCESS:

第 1 步:单击主菜单中的“分数”按钮: 这将删除菜单 (UIView),并加载分数 (UIView),随后启动使用值填充 UITableView 的过程。这里没有问题。

第 2 步:从分数屏幕单击“菜单”按钮: 这将删除分数 (UIView),并再次加载菜单 (UIView)。这里没有问题。

第 3 步:再次从主菜单单击“分数”按钮: 再次,这将删除菜单 (UIView),并加载分数 (UIView),随后启动使用值填充 UITableView 的过程。有问题!

应用程序在显示乐谱屏幕 (UIView) 之前崩溃。使用调试器,我将问题追溯到单行代码:cell.text = [self->theScoresArray objectAtIndex:indexPath.row]; 出现在以下例程中:

这可能是第一次没有正确释放 indexPath 对象的问题吗?任何见解都会有所帮助。感谢您宝贵的时间。

0 投票
4 回答
9090 浏览

iphone - UIView:如何进行无损绘图?

我原来的问题:

我正在创建一个简单的绘图应用程序,并且需要能够在我的drawRect. 在不完全替换现有内容的情况下绘制现有内容的正确方法是什么?

根据在这里和其他地方收到的答案,这就是交易。

  1. 您应该准备好在drawRect 调用时重新绘制整个矩形。

  2. 无法通过执行以下操作来防止内容被删除:

    [self setClearsContextBeforeDrawing: NO];

    这只是对图形引擎的一个提示,让它为您预先清除视图是没有意义的,因为无论如何您可能需要重新绘制整个区域。它可能会阻止您的视图被自动删除,但您不能依赖它

  3. 要在视图顶部绘制而不擦除,请在屏幕外位图上下文中进行绘图(系统永远不会清除该上下文。)然后在您的 中drawRect,从该屏幕外缓冲区复制到视图。

例子:

TODO:任何人都可以优化,drawRect以便只使用(通常很小的)修改后的矩形区域进行复制吗?

0 投票
2 回答
9842 浏览

iphone - 覆盖 UIView

为 iPhone 覆盖两层 UIView 的合适方法是什么?在按下按钮之前,底层视图应该处于活动状态,然后另一个 UIView 应该以透明的方式覆盖所有内容。我找到了模态视图控制器,但它们只是交换 UI 视图但不覆盖。

提前致谢。

克里斯