我有一个包含UIImageView的UIScrollView,当iPhone旋转时我有一些麻烦来获得正确的行为.
目标:从纵向到横向时,我试图获得以下内容:
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| | AAAAAA |
|DDDDDDD| --> | CCCCCC |
|EEEEEEE| | EEEEEE |
|FFFFFFF| |_____GGGGGG_____|
|GGGGGGG|
---------
Run Code Online (Sandbox Code Playgroud)
在此处,纵向视图中的整个图像被缩放以适合iPhone旋转时的横向视图.它也是中心的.我也试图保持纵横比.用户交互也开启,用户应该能够使用整个屏幕来平移/缩放图像.
目前我autoresizingMask
在scrollView上有以下内容:
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
Run Code Online (Sandbox Code Playgroud)
但是这给出了以下内容
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| |AAAAAA |
|DDDDDDD| --> [BBBBBB |
|EEEEEEE| [CCCCCC |
|FFFFFFF| [DDDDDD__________|
|GGGGGGG|
---------
Run Code Online (Sandbox Code Playgroud)
此设置可保留左上角的比例和偏移.
问题:
是否可以使用合适的方法获得此行为autoresizingMask
?如果没有,可能应该设置
scrollView.autoresizingMask = UIViewAutoresizingNone;
Run Code Online (Sandbox Code Playgroud)
并手动设置zoomScale
和contentOffset
旋转UIScrollView.但是,应该在哪里完成?那个变化的动画怎么样?
解决方案: 通过稍微修改下面的答案,我使用以下代码得到了上述行为:
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeScaleAspectFit;
scrollView.contentMode = …
Run Code Online (Sandbox Code Playgroud) 我有一个UIImageView
在UIScrollView
和我有一些麻烦的contentOffset
财产.根据Apple的参考,这被定义为:
contentOffset:内容视图的原点偏离滚动视图原点的点.
例如,如果图像位于屏幕的左上角,如下所示,则contentOffset将为(0,0):
_________
|IMG |
|IMG |
| |
| |
| |
| |
---------
Run Code Online (Sandbox Code Playgroud)
对于设备旋转,我有以下设置:
scrollView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeCenter;
scrollView.contentMode = UIViewContentModeCenter;
Run Code Online (Sandbox Code Playgroud)
这将使一切都围绕屏幕中心旋转.旋转屏幕后,屏幕将如下所示:
______________
| IMG |
| IMG |
| |
--------------
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我现在读到contentOffset
它,它仍然是(0,0).(如果我在横向模式下移动UIImage,contentOffset
则更新值,但它是根据错误的原点计算的.)
有没有办法计算UIImage相对于屏幕左上角的坐标.contentOffset
当屏幕处于视图的初始方向时,似乎只返回此值.
我曾尝试阅读self.view.transform
和scrollView.transform
,但他们总是身份.
iPhone的设置应用程序是围绕一个UITableview
.在某些视图中,单元格之间还有其他文本.例如,在"设置" - >"常规" - >"网络"中,有一个带有UISwitch的单元格下的"使用3G加载数据更快,但可能会缩短电池寿命".任何想法如何实现这一点?
我的意思的图像可以在这里找到:
http://www.tipb.com/2008/07/12/how-to-disable-3g-on-the-iphone-3g-for-more-talk-but-less-speed/
我正在尝试将 Lab 颜色转换为 RGB。作为此转换的示例,Photoshop 将
L= 100, a = 0, b = 127
Run Code Online (Sandbox Code Playgroud)
进入
R=255, G=252, B=0.
Run Code Online (Sandbox Code Playgroud)
这种颜色是亮黄色。
我编写了以下转换例程(C/Objective C)。然而,有些事情是不对的。代码会输出
XYZ = 100.000000 100.000000 4.862713
RGB = 163.908401 90.755638 -13.093634
Run Code Online (Sandbox Code Playgroud)
这里 RGB 结果和 Photoshop 的 RGB 之间的不匹配似乎相当大。负蓝色成分也是一个问题。
关于如何更正以下代码的任何想法将不胜感激?或者,任何其他用于将 Lab 转换为 RGB 的算法/公式/伪代码?谢谢你。
编码:
/*
* See Wikipedia artice on Lab color space
*
* http://en.wikipedia.org/wiki/Lab_color_space
*
*/
CGFloat fInv (CGFloat t) {
CGFloat T0 = (CGFloat) 6.0f/29.0f;
if (t > T0) {
return t*t*t;
}
return 3.0 * T0 * …
Run Code Online (Sandbox Code Playgroud)