我的应用程序中有一个阿拉伯语页面,阿拉伯语页面中的“日期字段”必须与视图的右侧对齐(现在,它位于左侧)。我试过以下代码
-(void)changeDatePosition{
if (!_isEnglish) {
CGRect currentDatePostion=_viewForDate.frame;
[_viewForDate removeFromSuperview];
currentDatePostion.origin.x+=currentDatePostion.size.width;
_viewForDate.frame=currentDatePostion;
[_baseView addSubview:_viewForDate];
}
}
但这没有帮助。视图定位在导航栏的顶部(x坐标也没有变化)。我使用autolayout将“ViewForDate”(日期字段)的左前导空格与“PlacesView”(日期字段顶部的视图)的前导空格对齐。但我把它的优先级设定为250.我可以解决这个问题吗?
答案 0 :(得分:1)
-(void)changeDatePosition{
if (!_isEnglish) {
CGRect currentDatePostion=_viewForDate.frame;
[_viewForDate removeFromSuperview];
float ScreenWidth=_viewForDate.frame.size.width;
currentDatePostion.origin.x=ScreenWidth-currentDatePostion.size.width;
_viewForDate.frame=currentDatePostion;
[_baseView addSubview:_viewForDate];
}
}
请你试试。可以解决你的问题
答案 1 :(得分:1)
试试这段代码。
currentDatePosition = CGRectMake(self.view.frame.size.width - currentDatePosition.size.width, currentDatePosition.frame.origin.y, currentDatePosition.frame.size.width, currentDatePosition.frame.size.height);
答案 2 :(得分:1)
将IBOutlet挂钩到日期视图的前导约束并将其值设置为0.然后尝试以下代码:
-(void)changeDatePosition{
if (!_isEnglish) {
_dateViewLeadConstraint.constant = x;
}
//x - amount by which view should move right, you can calculate based on your view setup
}
答案 3 :(得分:0)
我找到了问题的解决方案并对此感到非常高兴。
DateView具有左对齐(前导空格)到场所设置为0.我也为它做了一个右对齐(在144)。然后我为它们创建了Outlets,即leftAlignment(= 0)和rightAlignment(= 144)并编写了这个方法。
-(void)changeDateLocation{
if (!_isEnglish) {
_leftAlignment.priority=UILayoutPriorityDefaultLow;
_rightAlignment.constant=0;
_rightAlignment.priority=UILayoutPriorityDefaultHigh;
}
else{
_leftAlignment.priority=UILayoutPriorityDefaultHigh;
_rightAlignment.priority=UILayoutPriorityDefaultLow;
_leftAlignment.constant=0;
}
}
这给了我解决方案。我感谢所有贡献的人。我认为这种方法非常有用。我是第一次尝试这个