我有一个自定义的UIView,我用于UITableView标头。我在代码中创建它。 (我基本上遵循WWDC 2010的TVAnimationGestures)。对于从左侧偏移一些的UI元素,它在任一方向上看起来都很好。但是,如果我想要一个偏离右手大小的UILabel,我不知道该怎么办。如果我在IB,我会使用弹簧/支柱。但不知道如何在代码中这样做。感谢。
答案 0 :(得分:0)
spring / struts是autoresizingMask的GUI界面:
对于右对齐,您希望在首次创建时使用正确的偏移量定位标签,并将autoresizingMask设置为UIViewAutoresizingFlexibleLeftMargin(以及您想要的任何其他)。
答案 1 :(得分:0)
一种简单的方法是在视图中实现一个方法,根据UIInterfaceOrientation放置它的子视图。
然后,当检测到旋转时,您可以从UIViewController调用此方法。
例如:
在YourView.h中
@interface YourView : UIView {
}
// Public API
- (void)placeWidgetsForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
@end
在YourView.m中
#import "YourView.h"
@implementation YourView
...
#pragma mark -
#pragma mark Public API
- (void)placeWidgetsForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Change frames of subviews according to orientation in here
}
@end
然后在YourController.m
中- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
YourView *theView = (YourView *) self.view; // Or where ever your view is
[theView placeWidgetsForInterfaceOrientation:toInterfaceOrientation];
}