作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 IOS 编程的新手,因此遇到了以下问题。我会尽力描述问题,非常感谢任何帮助。
我创建了以下内容:
TestView.h如下:
@interface TestView : UIView {
IBOutlet UIView *mainView;
IBOutlet UIView *infoView;
UILabel *lbltitle;
UIImageView *imgIcon;
IBOutlet UITextView *txtInfo1;
IBOutlet UITextView *txtInfo2;
IBOutlet UITextView *txtInfo3;
}
@property (nonatomic, retain) IBOutlet UILabel *lbltitle;
@property (nonatomic, retain) IBOutlet UIImageView *imgIcon;
TestView.m如下:
#import "TestView.h"
#import <QuartzCore/QuartzCore.h>
@implementation TestView
@synthesize lbltitle, imgIcon;
-(void)awakeFromNib
{
[self addSubview:mainView];
}
在纵向模式下, View 效果很好,但在横向模式下, View 就有点乱了。我尝试使用 XIB,但我猜你只能做这么多,所以我决定以编程方式执行此操作。
在 AboutViewController.m 中,我试图覆盖 willAnimateRotationToInterfaceOrientation 方法并根据方向放置对象。当我放置断点时,我可以看到正在调用代码,只是它没有转换到 UI,即 UI 没有变化。我究竟做错了什么 ?我应该以不同的方式处理这个问题吗?非常感谢任何建议或指导。
- (void)willAnimateRotationToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
TestView *t = [[TestView alloc]init];
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
[t.imgIcon setFrame:CGRectMake(10,74,165,190)];
[t.lbltitle setFrame:CGRectMake(20, 10, 387, 21)];
}
else
{
[t.imgIcon setFrame:CGRectMake(10,74,165,190)];
[t.lbltitle setFrame:CGRectMake(189, 10, 387, 21)];
}
}
最佳答案
具体的问题是你操纵了一个你刚刚创建的 View
TestView *t = [[TestView alloc]init];
您不会在任何地方显示 View ,因此它位于内存中。您可以应用您想要的所有更改,但要能够看到它们,您必须首先显示 View :
找到合适的 parent 并做:
[parentview addSubview:t];
更一般地说,您不应该在旋转处理代码中创建新 View 。
关于objective-c - 如何在 Xcode 中访问或操作一个类的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9303990/
我是一名优秀的程序员,十分优秀!