在自定义绘制的视图中动画大小变化的问题

     2023-03-10     289

关键词:

【中文标题】在自定义绘制的视图中动画大小变化的问题【英文标题】:Problem animating size change in a custom-drawn view 【发布时间】:2011-03-23 14:18:45 【问题描述】:

我有一个自定义的UIView,它实现了drawRect,以使用渐变背景和边缘周围的 1 像素黑色边框以及一些文本来呈现自己。

在我的父视图控制器中,我尝试使用以下代码将我的自定义视图从原来的小尺寸动画化为全屏:

[UIView beginAnimations:nil context:NULL];
CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
CGRect detailRect = CGRectOffset(screenRect, 0, -screenRect.origin.y); 
[dayDetail.view setFrame:detailRect];
[UIView commitAnimations];

这可行,但我的自定义视图中的drawRect 仅在最初创建视图时调用一次。结果,调整大小只需要原始的小图像并将其放大到全屏,因此全尺寸视图的边框现在是多个像素宽而不是一个,并且文本的大小也得到了扩展。

有什么方法可以设置它,以便在视图从小到全屏动画时连续调用drawRect?基本上,我希望我的自定义渲染代码能够处理视图的外观,无论它在任何时间点的大小。

【问题讨论】:

【参考方案1】:

我也遇到了同样的问题,我就是这样解决的:

dayDetail.view.contentStretch = CGRectMake(0.5, 0.5, 0.0, 0.0);

这只会拉伸中间像素。阅读文档以了解如何修改该行为。你当然可以问我,但阅读文档可能更快。此外,我可能只会引用文档。

【讨论】:

有意思,我试试看。

在自定义视图控制器转换中抑制导航推送动画

】在自定义视图控制器转换中抑制导航推送动画【英文标题】:Suppressnavigationpushanimationinacustomviewcontrollertransition【发布时间】:2013-09-3022:37:43【问题描述】:我将iOS7中引入的新自定义视图控制器转换与UINavigationController结合使用... 查看详情

在自定义视图中绘制描边形状

】在自定义视图中绘制描边形状【英文标题】:Drawingastrokedshapeinacustomview【发布时间】:2019-02-2708:06:37【问题描述】:我正在尝试在自定义视图中绘制此自定义形状。我必须对这个形状进行描边和填充。现在我用2个形状制作了... 查看详情

在自定义视图中制作 2 个动画

】在自定义视图中制作2个动画【英文标题】:Make2animationsinCustomView【发布时间】:2013-10-0813:11:57【问题描述】:我正在创建一个自定义视图,它包含Refresh、*LayoutSubviews*等方法,遵循tutorial我想要一个标签动画增长,它的全宽,... 查看详情

如何为自定义视图选择设置膨胀和颜色变化的动画?

】如何为自定义视图选择设置膨胀和颜色变化的动画?【英文标题】:Howtoanimateaswellandcolorchangeforacustomviewselection?【发布时间】:2014-12-1222:51:18【问题描述】:我有自定义UIView对象的层次结构。叶视图是可选的。他们有一个isSelec... 查看详情

在自定义容器视图中旋转时 AutoLayout 不会调整视图大小?

】在自定义容器视图中旋转时AutoLayout不会调整视图大小?【英文标题】:AutoLayoutwon\'tresizeviewwhenrotatinginacustomcontainerview?【发布时间】:2012-11-0112:38:25【问题描述】:我有一个非常基本的容器视图,它包含一个侧边栏并在内容区... 查看详情

在自定义容器控制器中旋转后视图未调整大小

】在自定义容器控制器中旋转后视图未调整大小【英文标题】:ViewsNotResizingAfterRotationInCustomContainerController【发布时间】:2012-08-2405:30:38【问题描述】:我制作了一个测试应用程序来熟悉制作自定义容器视图控制器。如果我在应... 查看详情

在自定义 UIView 中动画 UIBezierPath 不起作用

】在自定义UIView中动画UIBezierPath不起作用【英文标题】:AnimatingUIBezierPathincustomUIViewdoesn\'twork【发布时间】:2015-07-0808:51:34【问题描述】:当用户触摸我的视图(touchesEnded)时,我正在尝试在我的自定义UIView中为UIBezierPath(从一条... 查看详情

更新注释视图时如何在自定义注释引脚中制作动画

】更新注释视图时如何在自定义注释引脚中制作动画【英文标题】:Howtodoanimationincustomannotationpinwhenupdateannotationview【发布时间】:2016-03-2019:07:13【问题描述】:我想做动画,比如“当滚动collectionviewcell时注释针在滚动结束时向... 查看详情

自定义视图缩小:之前占用的空间没有被清除

...aceisnotcleared【发布时间】:2015-10-2616:41:17【问题描述】:在自定义视图中,OnMeasure和OnSizeChanged分别用于设置intrisic尺寸和获取最终尺寸。在OnDraw中,使用当前的宽度/高度绘制可绘制对象。现在,如果视图被告知要更改其内部大... 查看详情

当我为自定义视图设置动画时,视图的高度会发生变化

】当我为自定义视图设置动画时,视图的高度会发生变化【英文标题】:WhenIanimatethecustomview,theheightoftheviewchanges【发布时间】:2017-05-1603:07:03【问题描述】:我的BetRecordAniChooserView的xib:我在模拟器中的ViewController:可以看到选... 查看详情

带有动画更改的自定义进度对话框的大小

】带有动画更改的自定义进度对话框的大小【英文标题】:Sizeofcustomprogressdialogwithanimationchanges【发布时间】:2019-09-0117:32:40【问题描述】:当开始应用程序开发时,我会创建一个自定义进度对话框,其中包含动画。但在进一步... 查看详情

如何停止在自定义表格视图单元格中交换数据?

】如何停止在自定义表格视图单元格中交换数据?【英文标题】:Howtostopexchangingdataincustomtableviewcell?【发布时间】:2016-06-1113:05:13【问题描述】:我正在开发一个表格视图应用程序(我设计了uitableview单元格笔尖)。一旦我向下... 查看详情

在自定义视图和视图控制器中使用 AutoLayout

】在自定义视图和视图控制器中使用AutoLayout【英文标题】:UsingAutoLayoutinCustomViewsvsViewControllers【发布时间】:2014-11-0105:31:05【问题描述】:很长一段时间以来,我一直在使用旧的做事方式,通过在各个帧上设置原点和大小,并... 查看详情

强制在自定义 WPF 控件中重新绘制自定义绘制的 UIElement

】强制在自定义WPF控件中重新绘制自定义绘制的UIElement【英文标题】:ForcearepaintofacustomdrawnUIElementinacustomWPFcontrol【发布时间】:2017-04-0920:10:38【问题描述】:我正在开发一个自定义WPF控件。此控件的主要目的是在可滚动区域中... 查看详情

动画 UIFont 大小的变化

...化。我正在考虑从UIView的子类调用drawRect并以不同的大小绘制文本。【问题讨论】:动画字体大小是什么意思?你想做什么?例如如果字体是20并且他想将其动画一直到10像素。CanfontsizeofUILabelbechangedwiths 查看详情

调整自定义视图的报告大小以包括绘制的图形

】调整自定义视图的报告大小以包括绘制的图形【英文标题】:Adjustcustomview\'sreportedsizetoincludedrawngraphics【发布时间】:2014-01-1600:50:57【问题描述】:我有一个自定义视图类(称为FooView),我将其用作xml布局的根元素。FooView,... 查看详情

在自定义 UITableViewCell 中调整 UIImageView 的大小会产生不一致的结果

】在自定义UITableViewCell中调整UIImageView的大小会产生不一致的结果【英文标题】:ResizingUIImageViewwithincustomUITableViewCellyieldinginconsistentresults【发布时间】:2012-10-2312:41:07【问题描述】:我正在基于我在XIB文件中创建的UITableViewCell原... 查看详情

在自定义视图中膨胀子视图

】在自定义视图中膨胀子视图【英文标题】:Inflatechildrenviewsincustomview【发布时间】:2013-11-0318:39:17【问题描述】:我有一个类Cell,它扩展了LinearLayout。在通过构造函数创建新单元格的过程中,我想通过扩展xml布局将视图添加到... 查看详情