iOS masonry動態約束控制元件位置
#import "FourViewController.h"
#import "View+MASAdditions.h"
#import "FiveViewControllerr.h"
#define WS(weakSelf) __weak __typeof(&*self)weakSelf = self;
#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
static NSString const*[email protected]"FourViewController";
static NSString const*
@interface FourViewController ()
@property (strong, nonatomic) UIButton *move;
@property (strong, nonatomic) UIButton *back;
@property (strong, nonatomic) UIImageView *imageView;
@property (assign, nonatomic) int s;
@end
@implementation FourViewController
+ (instancetype)createViewControllerWithStoryboard:(id)createArgs{
UIStoryboard *storyboard=[UIStoryboard storyboardWithName:(NSString *)kStoryboardName bundle:nil];
FourViewController *vc=[storyboard instantiateViewControllerWithIdentifier:(NSString *)kIdentifier];
return vc;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self initRightItem];
_s=10;
[self initFirstContraints];
}
- (void)initFirstContraints{
//WS(ws);
// UIView *view=[UIView new];
// view.backgroundColor=[UIColor brownColor];
// [self.view addSubview:view];
// [view mas_makeConstraints:^(MASConstraintMaker *make) {
// make.left.equalTo(self.view).with.offset(0);
// make.size.mas_equalTo(CGSizeMake([UIScreen mainScreen].bounds.size.width,[UIScreen mainScreen].bounds.size.height));
// }];
//int width=([UIScreen mainScreen].bounds.size.width-_s*2-10)/2;
_move=[[UIButton alloc]init];
_move.backgroundColor=[UIColor blueColor];
[self.view addSubview:_move];
[_move mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view).with.offset(_s);
make.top.equalTo(self.view).with.offset(100);
make.width.equalTo(@150);
make.height.equalTo(@40);
}];
[_move addTarget:self action:@selector(moveFrame) forControlEvents:UIControlEventTouchUpInside];
[_move setTitle:@"移動圖片" forState:UIControlStateNormal];
_back=[[UIButton alloc]init];
_back.backgroundColor=[UIColor greenColor];
[self.view addSubview:_back];
[_back mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.view).with.offset(-_s);
make.top.equalTo(self.view).with.offset(100);
make.width.equalTo(@150);
make.height.equalTo(@40);
}];
[_back addTarget:self action:@selector(backFrame) forControlEvents:UIControlEventTouchUpInside];
[_back setTitle:@"圖片回來" forState:UIControlStateNormal];
_imageView=[[UIImageView alloc]init];
_imageView.image=[UIImage imageNamed:@"move"];
[self.view addSubview:_imageView];
[_imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view).with.offset(_s);
make.top.equalTo(self.view).with.offset(200);
make.width.equalTo(@150);
make.height.equalTo(@150);
}];
}
- (void)moveFrame{
_s=_s+5;;
NSLog(@"_s:%d",_s);
[_imageView mas_updateConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view).with.offset(_s);
make.top.equalTo(self.view).with.offset(200+_s);
make.width.equalTo(@150);
make.height.equalTo(@150);
}];
}
- (void)backFrame{
_s=_s-5;;
NSLog(@"_s:%d",_s);
[_imageView mas_updateConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view).with.offset(_s);
make.top.equalTo(self.view).with.offset(200-_s);
make.width.equalTo(@150);
make.height.equalTo(@150);
}];
}
- (void)initRightItem{
[self setTitle:@"動態改變控制元件位置"];
UIBarButtonItem *right=[[UIBarButtonItem alloc]initWithTitle:@"多約束" style:UIBarButtonItemStylePlain target:self action:@selector(right)];
self.navigationItem.rightBarButtonItem=right;
}
- (void)right{
FiveViewControllerr *vc=[FiveViewControllerr createViewControllerWithStoryboard:nil];
[self.navigationController pushViewController:vc animated:YES];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
相關推薦
iOS masonry動態約束控制元件位置
#import "FourViewController.h" #import "View+MASAdditions.h" #import "FiveViewControllerr.h" #define WS(weakSelf) __weak __typeof(&
android 動態改變控制元件位置和大小
動態改變控制元件位置的方法: setPadding()的方法更改佈局位置。 如我要把Imageview下移200px: ImageView.setPadding( ImageView.getPaddingLeft(), ImageView.get
Android開發FrameLayout動態新增控制元件位置問題
首先FrameLayout的子控制元件預設都是從左上角顯示的,還有最後新增的在最前面顯示。 一般是對FrameLayout.LayoutParams params進行操作
Android動態新增控制元件約束位置
用LayoutParams: RelativeLayout insertLayout = (RelativeLayout)view1.findViewById(R.id.screen);//screen是一個RelativeLayout 佈局的id ImageView imgApple2 = new
android 動態控制控制元件位置 控制元件位置為點選位置
需求:進度圈顯示在手指點選位置 裝置:平板 解決辦法:將點選事件獲取到的位置(MotionEvent e)與控制元件設定位置建立聯絡 在網上找了很多都沒有解決問題,下面程式碼為自己摸索得到的解決辦法,可能不實用於所有,但已解決我的需求 main.setOnTouchListener
android 在java程式碼中動態設定控制元件的位置和設定片大小
需要動態改變佈局裡面控制元件的相對位置 如: 1.改變RelativeLayout佈局裡面某個控制元件的layout_toLeftOf 的屬性 RelativeLayout.Layoutparams params = (RelativeLayout.LayoutParams)view
ios 中使用xib拖拽的scrollview中子控制元件位置偏移
1.問題描述:在xib中拖拽了一個scrollview,並且為之添加了約束,然後從xib中例項化了自定義view新增到scrollview後,發現這個自定義view的子控制元件位置都偏移了。 2.問題
HorizontalScrollView動態新增控制元件並可以移動到點選的控制元件的位置
點選“第4期”後的效果圖為 程式碼: mScrollView = (HorizontalScrollView)findViewById(R.id.scroll_view); mLinear = (LinearLayout)findViewById(R.id.line
ios 通過設定UI控制元件的center和size來設定位置時需注意!
<iframe id="iframeu848856_0" src="http://pos.baidu.com/mccm?rdid=848856&dc=2&di=u848856&dri=0&dis=0&dai=2&
VB.NET 控制元件位置隨窗體變化動態改變
第一次遇到這個問題,網上找了找方法,發現設定控制元件的Anchar屬性,基本上可以解決位置自動改變的問題. 點選Anchor下拉箭頭,在彈出的小視窗中,點選上下左右4個矩形,以便對控制元件進行定位. 如下圖,該控制元件定位與視窗的右上方.當視窗大小變化時,它會隨著上方和右
執行時動態移動控制元件的位置和改變控制元件的尺寸
Delphi的TCustomForm留有一個為IDE的視覺化設計的用的介面Designer. Designer是IDesignerNotify, IDesignerHook 介面. 我在這裡實現了這些介面. 程式不用做任何改動,只要調函式BeginDesign就可以開始像I
關於android 中控制元件位置動態設定的問題
1:動態建立一個控制元件,比如WebView WebView m_mWbView = new WebView(getApplication()); 2:設定layout 引數,使用FrameLayout ,其他的好像動態設定位置都無效 ..... ViewGroup mVi
android動態設定控制元件的大小和位置
本次做的是機頂盒上視訊播放器,當視訊播放控制元件的大小先在xml檔案設定完成。 當點選視訊控制元件時,使視訊為全屏播放,此時 RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams
iOS開發學習筆記 -- (二)動態新增控制元件和事件處理
剛開始學iOS開發的時候,經常要跟interface builder打交道,乍一看拖控制元件是挺方便的,跟以前做C#開發類似,但是Xcode比較噁心的一點是,拖完控制元件之後,還得手動地在Connections Inspector中繫結控制元件和變數的關係,事件的繫結也在這
ios -- Masonry 更新約束
nts constrain off ios rain height spa sep pre [self.speakerButton mas_remakeConstraints:^(MASConstraintMaker *make) { make.l
iOS masonry新增約束之後 新增layer
我們用masonry約束的時候其實並沒有給控制元件一個具體的frame,所以呼叫 view.frame都是CGRectZero 所以新增layer的時候總是看不到效果,只需要把新增layer的程式碼放在下面方法即可: -(void)layoutSublayersOfLayer:(CALa
IOS版App的控制元件元素定位
前言 Android版App的控制元件元素可以通過Android studio自帶的工具uiautomatorviewer來協助定位! IOS版App的控制元件元素可以通過Appium來實現(未實現),或app-inspector來實現,在此記錄app-inspector的使用 安裝 一、安裝Node
VC中自動改變控制元件位置和大小的對話方塊類
lxDialog.h檔案: ///////////////////////////////////////////////////////////////////////////////////// // 自動改變控制元件位置和大小的對話方塊類 // 檔名:lxDialog.h //
動態建立控制元件的序列化與反序列化
public Button Btn = new Button(); //序列化儲存 savedButton = XamlWriter.Save(Btn); //反序列化 還原 if (!string.IsNullOrEmpty(savedButton
安卓動態新增控制元件_向LinearLayout中增加控制元件
背景: 在有些情況下,需要通過程式碼自動向頁面內增加控制元件,而不是事先在xml檔案中寫好。本文介紹向LinearLayout中增加控制元件。 解決方案: 1.新增單個控制元件樣例 LinearLayout layout = find